Sven Rautenberg: $_Session als inlcude einbinden.

Beitrag lesen

Moin!

ich will mir z.b. aus einem formular den wert des feldes "nachname" merken.

nach dem absende schreibe ic folgendes in meine seite:
session_start();

Das startet die Session und holt den im letzten Skript zum Skriptende in $_SESSION vorhandenen Datenbestand wieder nach $_SESSION.

$_SESSION["nachname"] = $nachname;

Das überschreibt den Inhalt von $_SESSION mit dem Inhalt von $nachname.

nun will ich diese in eine eigene datei schreiben und per include  einbinden. ich brauche diese mehrmals und möchte sie nicht in alle seiten schreiben.

dateiname variablen.php:
session_start();
$_SESSION["name"] = $name;

Hier überschreibst du bei jedem Skript, dass diese Datei einbindet, die Variable $_SESSION['name'] mit dem Inhalt von $name.

Wenn $name seinen Wert nicht von irgendwoher vorbelegt kriegt (GET-Parameter, POST-Formular, Cookie - das alles aber nur bei register_globals=on), dann wird in $name immer der Leerstring stehen und deine Sessionvariable immer gelöscht werden - außer das eine Mal, bei dem in $name durch das Formularabschicken was drinsteht. Nur: Dieser Zustand hält nur bis zum nächsten Skriptstart.

nun binde ich dies auf meiner seite als include ein.
include_once("variablen.php");

nun kommt bei echo $_SESSION["name"] nix mehr!?

Was ja logisch ist.

Betrachte $_SESSION als ein Array, dessen aktueller Inhalt am Skriptende automatisch gespeichert und nach dem Ausführen des Befehls session_start() wieder geladen wird.

Zwischen session_start() und Skriptende kannst du dann beliebige Manipulationen daran durchführen. Du mußt aber eben gerade NICHT bei jedem Skriptstart manuell Variablen in $_SESSION reinschreiben - eher im Gegenteil willst du eventuell (was ich aber nicht für ratsam halte) Variablen mit dem Inhalt aus $_SESSION befüllen.

- Sven Rautenberg

--
My sssignature, my preciousssss!