phpbar.de logo

Mailinglisten-Archive

[php] 1/2 OT Session und Google Cache

[php] 1/2 OT Session und Google Cache

Sebastian Mendel lists at sebastianmendel.de
Die Dez 5 10:08:08 CET 2006


Ringo Großer schrieb:
> Hallo Sebastian,
> 
> Sebastian Mendel wrote:
>> ein session_start() wird nur dort benötigt wo auch tatsächlich auf
>> $_SESSION zugegriffen wird ... nicht auf jeder Seite, auch wenn eine
>> Session vorher gestartet wurde und diese später weiterlaufen soll, das
>> stört sich nicht.
> 
> Dies bedeutet, dass die Funktion session_id() bereits vor oder ohne ein
> session_start() einen entsprechenden Wert zurückliefert, wenn eine
> Sessionid von einer vorigen Seite über eine der üblichen von PHP
> erkannten Methoden übergeben wurde? Das war mir so bisher nicht
> bewusst. Ich dachte, dass sämtliche Session-relevanten Funktionen
> erst nach einem session_start() reagieren.

das habe ich nicht gemeint, und glaube ich auch nicht,

IMOH, liefert session_id() erst nach einem session_start() eine gültige 
ID, weil session_id() vorher ja gar nicht weiß für welche Session es die 
ID zurückliefern sollte, bzw. wie die Session heißt, dies wird erst mit 
session_name() festgelegt, oder wenn nicht festgelegt der Standard 
PHPSESSID verwendet - aber davon kann session_id() ja nicht ausgehen


> In meiner Applikation ist die Session auf jeder Seite notwendig, weil auf
> jeder Seite dem User angezeigt wird, ob und dass er eingeloggt ist.

na dann stellt sich für dich die Frage ja eh nciht, außer du hast, wie 
du sagtest, Frames, dann brauchst du z. B. in der frameset.php (sofern 
es eine PHP-Datei ist) kein session_start() sofern du dort nicht 
irgendwo auf $_SESSION zugreifst.


> Aber theoretisch könnte man also eine Session starten, die ID in einem
> Cookie lagern, dann 10 weitere Seiten ohne session_start() aufrufen und
> dann auf Seite 11 mit einen session_start() wieder die Session aufnehmen?

genau so - vorausgesetzt das Timeout hat nicht vorher zugechlagen - aber 
du sparst dem Script/PHP damit das öffnen der Session-Datei - was je 
nach Größe ja auch etwas zeit benötigt

> Ich dachte PHP kümmert sich nur bei einer aktiven Session um die
> Weitergabe der ID. Aber gut zu wissen, dass es auch so funktionieren
> würde.

Wenn die ID einmal im Cookie ist bleibt sie auch dort - und ich sprach 
hier ja auch von Session mit Cookies und nicht mit GET

> Wie wäre das bei einem Fallback, also wenn man die Session-ID in der
> URL akzeptieren würde, falls der User keine Cookies nimmt, und PHP
> sich normalerweise selbst um das Anhängen dieser ID an relevante
> Elemente selbst kümmert?

da klappt das nicht - außer du kümmerst dich selber darum - du 
'verlierst' also die Session-ID und kannst sie dann dementsprechend auch 
nicht mehr fortsetzen


-- 
Sebastian Mendel

www.sebastianmendel.de

php::bar PHP Wiki   -   Listenarchive