PHP Sessions - verwenden von sessions vor session_start()
geddon
- php
Hallo,
Kann man herausfinden ob eine Session schon gestartet wurde bevor ich session_start() verwende?
Ich möchte auf meiner Seite einen öffentlichen Bereich und einen Login Bereich haben. Der öffentliche Bereich sollte aufrufbar sein ohne dass eine Session gestartet wird. Wenn man sich dann einloggt wird die session das erste mal gestartet und ich übergebe die sid über .php?PHPSID=123456789 .
Die Session ID soll aber auch auf den öffentlichen Seiten übertragen werden, wenn eine vorhanden ist.
Bevor ich nicht session_start() eingegeben habe existiert keine session mit z.B session_id(). Erst nach session_start(). Ich will jedoch überprüfen wenn eine session exsistiert soll session_start() ausgeführt werden ansonsten nicht. Dadurch wird dann die sid auf öffentlichen Seiten übertragen und wenn man sich nicht einloggt hat keine session gestartet.
Weis jemand wie man das Problem lösen könnte?
Moin!
Kann man herausfinden ob eine Session schon gestartet wurde bevor ich session_start() verwende?
PHP hat drei definierte Wege, auf denen eine eventuelle Session-ID übertragen wird: $_POST, $_GET und $_COOKIE.
Den Namen der Session sagt dir session_name().
Der Rest ist eine simple Abfrage.
- Sven Rautenberg
Lieber geddon,
eine Session existiert erst dann, wenn sie gestartet wurde. Ansonsten existiert eine Session nicht. Klingt das logisch?
Wenn Du auf "öffentlichen Seiten" Deine Session ebenso nutzen können willst, dann musst Du sie eben starten - egal, ob da jemand angemeldet ist, oder nicht. Es bekommt jeder "normale" Besucher ein Cookie - oder eine lange URL. Und erst dann kannst Du angemeldete Besucher "wiedererkennen", um ihnen Sonderfeatures anzubieten.
Liebe Grüße,
Felix Riesterer.