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!