Tom: array-uebergabe mit sessions

Beitrag lesen

Hello,

wenn das Array sensible Daten enthält, ist der Ansatz mit Sessions nicht verkehrt. Wenn dem nicht so ist, kannst du es mittels serialize() (http://de2.php.net/manual/de/function.serialize.php) in eine speicherbare Form bringen und in einem hidden-fields übertragen. Auf der nächsten Seite musst du dann unserialize() (http://de2.php.net/manual/de/function.unserialize.php) benutzen, um das Array zurückzubekommen.

Serialize() reicht nicht. Man muss es auch noch "HTML-kastrieren". Dafür reicht base64encode() -> base64decode().

@herbert:
Beide Lösungen enthalten etwas Wahrheit...

Der Begriff "eine neue Session starten" ist etwas gefährlich, da Du nicht genau weisst, ob die Session schon offen war und wie oft der Client die Startseite für den Vorgang aufruft (in einem eigenen Fenster). Da musst Du für Sicherheit sorgen.

Also sagen wir mal, die Session starten.
Nun schauen wir rein in die Sessiondaten, ob ein bestimmter Wert drinsteht.

$id_formular = zufallszahl();
  if(isset($_POST["hid"]["id_form"]))
  {
    $id_formular = $_POST["hid"]["id_form"];
  }

if(isset($_SESSION[$id_formular])
     and ($_SESSION[$id_formular] == $id_formular))
  {
    # weitermachen
  }
  elseif(isset($_SESSION[$id_formular]))
  {
    # warnung ausgeben, dass schon ein Vorgang dieser Art läuft
    # wollen Sie trotzdem weitermachen?
    # neue Formular-ID einstanzen
    # weitermachen
  }
  else
  {
    # Startvorang einleiten, Erstausgabe
    #  <input type="hidden" name ="hid[id_form]" value="$id_formular">
  }

Je nach Fall kannst Du dann mit den Sessiondaten weiterverfahren.
Wenn das ganze mehrseitig wird, muss man noch die Seitennummer in der
Session unter der Formular-ID ablegen und ebenfalls abfragen.

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen