Mailinglisten-Archive |
* Barbara Griem wrote: > Also ich bin an der Geschichte auch gescheitert, sind die > Variablen einmal in der Session gespeichert, werden sie auch > bei erneutem registrieren nicht überschrieben (jedenfalls Schauen wir uns einmal an, wann die in der Session registrierten Variablen ins Spiel kommen: Request an den Server | | V GET-/POST-/Cookie-Parameter als PHP-Variablen | | V Session-Variablen Import Aha. Hast du ein Formular mit einem Input, dessen Name "strasse" heißt und du hast eine in der Session registrierten Variable "strasse" (vom vorherigen Submit des Formulars), so sieht das folgendermaßen aus: Request an den Server | | V POST-Request mit Variable strasse="Neue Strasse 5" => $strasse="Neue Strasse 5" | | | V Session-Variablen Import strasse="Alte Strasse 7" => $strasse="Alte Strasse 7" Wie ersichtlich ist, überschreibt das Session-System blöderweise die von uns neu eigegebenen Daten aufgrund eines Design-Fehlers in unserer Applikation. Was ist also zu tun? Zunächst einmal muß die in der Session registrierten Variable anders lauten als die des Formulars. Für das Formular nehme man fstrasse, für die Session-Variable bleibt es bei strasse. Dann kann man bei erneutem Submit machen: <?php session_register("strasse"); /** * eventuelles Validieren von $fstrasse auf ungültige * oder gefährliche Eingaben */ .... $strasse = $fstrasse; ?> Und schon kann man die in der Session registrierte Variable überschreiben. Beim Anzeigen des Formulars, also um die bereits einmal ein- gegebenen Daten anzuzeigen, kann man folgendes machen: print "<input type='text' name='fstrasse' value='".htmlspecialchars($strasse)."'>"; HTH, Björn. -- PHP-Schulungen in Frankfurt und München! Mehr Informationen? >>> mailto:bjoern_(at)_thinkphp.de
php::bar PHP Wiki - Listenarchive