Input-Felder leer nach Zurückblättern |
Mostone
Pixelschubser Threadstarter
Beiträge: 21 |
Hallo,
wenn ich dem User etwas in eine Form eintragen lasse, er dann auf weiter klickt und wieder zurück, dann sind die erst eingetragenen Felder wieder leer. Bei manchen Seiten im Netz sind die soeben eingetragenen Werte noch vorhanden. Woran liegt das bzw. wie kann ich im HTML oder Apache konfigurieren, dass beim Zurückblättern die Werte noch bzw. wiedervorhanden sind.
Für Hilfe bin ich sehr dankbar
Danke
|
 Profil
Editieren
Zitieren
|
Ori
Mausakrobat
Beiträge: 162 |
Dafür gibt es zweierlei Möglichkeiten:
- Viele Browser können Formulareingaben speichern oder zumindest Fragmente bei Neueingabe wiederherstellen.
- Andererseits kann man das besser serverseitig durch gute Webprogrammierung lösen, die (falls der Schritt schon ausgeführt wurde) die entsprechenden Werte in das Formular einträgt.
Keine Lösung ist dafür HTML, genausowenig kann Apache das Problem richten. (Beide können das nur zusammen mit einer serverseitigen Programmiersprache.)
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
Üblicherweise baut man da eine dynamsiche Webseite, welche sich dann selbst aufruft. Dadurch kann sie bei der Formularausgabe einfach nachschauen, welche Parameter übergeben wurden und diese als Feldwerte mit ausgeben. Dem Besucher erspart das auch den Zurück-Button im Browser zu klicken.
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
skc.tiddy
Otto-Normal-Poster
Beiträge: 81 |
verwendest du php-session, dann kann es beim zurück probleme geben.
das kannst du dann allerdings wieder umgeben, indem du den cache_limiter anders setzt.
---
...blah.
|
 Profil
Website
Editieren
Zitieren
|
Mostone
Pixelschubser Threadstarter
Beiträge: 21 |
klaro kann ich die Werte manuell wieder eintragen, falls der User auf die Seite wieder zurückgeht. Das werde ich auch machen, sofern sich keine andere Lösung findet.
Allerdings kann ich mich schwach erinnern auf einer Internetcommunity gesehen zu haben, dass von einem Tag auf dem anderen bei gleichem Browser die Daten nach dem Browser.zurück nicht mehr in den Feldern waren und ich denke dass dort die Werte nicht via PHP in die Felder eingetragen wurden, da die Seite beim Zurückblättern nicht neu geladen wurde
An meiner Browserkonfiguration hatte sich definitiv nichts geändert. Also muss doch irgendwas an der Apache-Konfiguration gedreht worden sein oder wo habe ich hier den Denkfehler?
|
 Profil
Editieren
Zitieren
|
Mostone
Pixelschubser Threadstarter
Beiträge: 21 |
ja, ich nutze php-sessions
|
 Profil
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
Bei der Verwendung von Sessions, sagt PHP dem Browser Bescheid das diese Seiten nicht gecacht werden können - ich dies meinte skc.tiddy.
Mir ging es darum das "Zurück" an sich überflüssig zu machen. Wenn die Seite mit dem Formular sich immer wieder selbst aufruft, verfügt sie im Moment des Aufrufes nicht nur über die Formularwerte, sondern kann sie auch prüfen und das Formular in modifizierter Form wieder ausgeben. Damit bekommt der User so lange das Formular, bis die Eingaben korrekt sind.Ergo interessiert es auch nicht mehr, ob der Browser irgendwelche Eingaben cacht.
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
ThomasHannover
Pixelschubser
Beiträge: 1 |
Ich habe die Lösung gefunden!
Habe soeben Stunden damit zugebracht, wieso der IE alle Formulareingaben löscht, wenn man den Rückwärts-Button betätigt. Alle anderen Browser merkten sich dagegen die Eingaben.
Bei mir war schlicht der Cache des IE voll. Einfach leeren, und dann funktioniert es.
Ich validiere Formulare meist so, dass ich die Seite nicht (!) selbst wieder aufrufen lasse. Sondern ich nehme die Prüfung der Eingabefelder auf einer Folge-PHP-Seite vor - wo dann evtl. eine Fehlermeldung erzeugt wird, mit der Bitte, zurückzublättern. Wenn der User dann aber plötzlich ein leeres Formular vorfindet, ist das natürlich super ärgerlich.
Meiner Meinung nach ist es zu viel des Guten, wenn man Formulareingaben serverseitig zwischenspeichert. Nichts gegen aufwendiges Coding - aber ich will kein Tagewerk damit zubringen, wenn ich ein simples HTML-Formular bereitstelle.
|
 Profil
E-Mail
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
Es wird nichts serverseitig zwischengespeichert. Es werden einfach die Fomularwerte in das neu erzeugte Formular eingetragen. Man kann dann zB auch die Felder mit fehlerhafter Eingabe rot umranden oder anders hervorheben.
Willst du jetzt etwa in die Fehlermeldung/Formularausgabe schreiben "Wenn dieses Formular sich die Werte nicht merkt, löschen Sie bitte Ihren Browsercache"?
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
yogi
Otto-Normal-Poster
Beiträge: 66 |
Dieses Problem lässt sich definitiv serverseitig (zB mit PHP) am einfachsten lösen. Das ist keine aufwendige Programmierung und wenn ohnehin PHP im Spiel ist, sollte es darüber doch keine Diskussion geben müssen.
"Browsercache voll" hin oder her - auf einer gute Website braucht der User den Browser-back-button nicht benützen müssen und dann bleibt ganz einfach nur noch ein kleines PHP-Script.
---
mfg
yogi
|
 Profil
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795 |
qwenn er es tut kann man serverseitig aber nichts dagegen tun.
|
 Profil
Editieren
Zitieren
|
Ehemaliges Mitglied (#1460)
Posting-Schinder
Beiträge: 609 |
ThomasHannover schrieb am 19.06.2005 13:26
Ich habe die Lösung gefunden! |
Heureka!
Habe soeben Stunden damit zugebracht |
Die hättest Du besser sinnvoll zugebracht (s.u.)
Meiner Meinung nach ist es zu viel des Guten, wenn man Formulareingaben serverseitig zwischenspeichert. Nichts gegen aufwendiges Coding - aber ich will kein Tagewerk damit zubringen, wenn ich ein simples HTML-Formular bereitstelle. |
Das, was Du hier als "zuviel des Guten" bezeichnest, ist eigentlich eine Selbstverständlichkeit. Ein minimales Maß an Benutzerfreundlichkeit. Die Stunden, die Du gebraucht hast, herauszufinden, dass Dein Cache voll ist, hättest Du besser damit verbracht, ein vernünftiges Formular-Auswert-Script zu schreiben. Denn das ist ja wohl ne Sache von 30 Minuten für jemanden, für den das nicht das erste PHP-Script ist.
Zwischengespeichert wird da gar nichts, wie schon gesagt, Du übergibst doch auch die Variablen an das Auswert-Script. Also wo ist da das Problem, das Formular nochmal mit den übergebenen Werten auszugeben? Wenn Du das Script vor allem selbst nochmal aufrufst, dann ist das die selbe Routine, wie die, die das leere Formular ausgibt. Du brauchst also nichtmal doppelten Code.
Wenn Du so viel Zeit hast, Deinen Cache zu untersuchen, dann solltest Du nochmal so viel Zeit in so ein Script investieren, Du wirst sehen, das ist sehr einfach
Gruß,
-Efchen
|
 Profil
Editieren
Zitieren
|