trys: $_SESSION daten zurücksetzen bei link

hallo,

mal eine frage
wie kann ich denn die in einem formular einegegebenen und im $_SESSION['var'] -Array gespeicherten daten zurücksetzen, wenn der user z.b den zurückbutton benutzt(z.B. IE) oder auf einen link clickt..?

und noch was , die formularfelder werte ich zunächst in dem
$_POST []- Array aus und übergebe die dann an das $_SESSION []-Array,

bsp.:

auswertung:
if (empty($_POST['vorname'])){
$b_hasError = TRUE;
..fehlermeldung
}
usw.

dann:
if(!$b_hasERROR){
$_SESSION['vorname'] = $_POST['vorname'];
$_SESSION['nachname'] = $_POST['nachname'];
}

ist das nicht irgendwie doppeltgemoppelt ???
ich frag weil ich
<form ... method="POST"> verwende.

danke
trys

  1. hi,

    wie kann ich denn die in einem formular einegegebenen und im $_SESSION['var'] -Array gespeicherten daten zurücksetzen, wenn der user z.b den zurückbutton benutzt(z.B. IE) oder auf einen link clickt..?

    mach dir erst einmal klar, was hier serverseitig abläuft, und was clientseitig.

    beim klick auf den zurück-button _kann_ mein browser die seit erneut vom server anfordern, muss er aber nicht.
    wenn er sie stattdessen aus seinem cache holt, hast du _gar keine_ möglichkeit, darauf zu reagieren, weil du es gar nicht mitbekommst.

    und noch was , die formularfelder werte ich zunächst in dem
    $_POST []- Array aus und übergebe die dann an das $_SESSION []-Array, [...]
    ist das nicht irgendwie doppeltgemoppelt ???

    kommt darauf an, was du damit noch vorhast.
    wenn du die daten auf der "nächsten" seite noch zur verfügung haben willst, ohne erneut ein formular per POST zu verschicken, ist das abspeichern in der session sicher die einfachste methode.

    wenn du sie aber auf der nächsten seite nicht mehr brauchst, sondern nur im aktuellen ziel-script des formulares, dann ist es überflüssig, die werte in der session abzulegen.

    gruss,
    wahsaga

  2. Hallo!

    if(!$b_hasERROR){
    $_SESSION['vorname'] = $_POST['vorname'];
    $_SESSION['nachname'] = $_POST['nachname'];
    }

    Sehe gerade, daß du was ähnliches machst wie ich auch. Ich habe mir dazu folgende Funktion geschrieben, die dir vielleicht auch hilft. Macht den Code etwas übersichtlicher (wenn man weiß, welche Variablen "ankommen", ggf. noch in Kommentar ein Liste machen). Auf jeden Fall ist es IMHO angenehmer, insb. wenn man mal Variablen rausschmeißt, hinzufügt, oder umbenennt. Also:

    foreach ( $_POST as $key => $val ) {
      if ( !isset( $_SESSION[$val] ) ) {
        $_SESSION[$key] = $val;
      }
    }

    Gruß

    Matthias

    --
    ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
    http://www.makaio.de/quotations