Thomas Schmieder: session_start()

Beitrag lesen

Hallo,

durch den Befehl session_start() übernimmt php mehrere Aufgaben:

1. Überprüfung, ob ein "Session-Cookie" vorhanden ist
2. Überprüfung, ob eine Session-Variable durch POST oder durch GET zur Verfügung gestellt wurde
3. wenn ja, wiederherstellung der Sessiondaten aus der Session-Datei
4. wenn nein, Erzeugung einer neuen Sessionnummer und Anlage einer Sessiondatei
5. Setzen eines "Session-Cookies" im HTTP-Header des Outputs
6. Output und Auswertung der Cookie-Accept-Antwort des Clients, falls dieser eine sendet
7. Wenn kein Cookie akzeptiert wird, Fallback auf Sessionnummer in allen <Form ...> als hidden-Variable und in allen URis als GET-Variable
8. Setzen der shutdown-Funktion für das Script, die für die Speicherung der $_SESSION-Variablen in der Sessiondatei beim Beenden oder bei Abbruch des Scriptes verantwortlich ist.

Mit der Funktion headers_sent() kann man abfragen, ob die Header-Daten des HTTP-Headers gesendet wurden. Wenn sie nicht durch session_start() automatisch ausgelöst werden, dann spätestens durch den Beginn des HTTP-Attachements, also durch das erste später im Quellcode des Browsers sichtbare Zeichen in der PHP-Quelldatei. Ob das dort durch echo oder durch reines HTML erzeugt wird, ist egal.

Probier das mit der Kontrollfunktion mal aus für:

setcookie()
session_start()
header()

ist ganz aufschlussreich.

Viel Erfolg und liebe Weihnachtsgrüße aus http://www.braunschweig.de

Tom

--
Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.