Sven Rautenberg: Kann man prüfen, ... Weitere Frage

Beitrag lesen

Moin!

Eine Weitere Frage dazu:
Wenn eine Session gestartet wurde und der Browser keine Cookies zuläßt, wird an interne Verweise automatisch die Session-id angehängt (bei aktiviertem --enable-trans-sid). Volglich müßte das Session-Management doch eine Möglichkeit haben, festzustellen, ob ein Cookie gesetzt wurde oder nicht. Ich weiß zwar nicht, wie dies geschieht, aber es funktioniert auf jeden Fall

Wenn du mal genau hinsiehst, passiert folgendes:

Die erste Seite bewirft den Browser mit einem Cookie, und zusätzlich haben alle Links die SID am Link drankleben.

Wenn das Cookie erfolgreich gesetzt werden konnte, dann fehlt die SID ab der zweiten Seite, ansonsten wird auf Seite 2 wieder mit einem Cookie geworfen, und alle Links haben die SID hintendran kleben, und alles ist so, wie auf Seite 1 beim ersten Besuch auch.

PHP kriegt also die Session-ID entweder aus dem Cookie, oder wahlweise als GET-Parameter (dann z.B. in der URL) oder als POST-Parameter (<form>-Tags werden automatisch um ein <input type="hidden"> ergänzt). Die Cookie-Methode ist dabei die beste, weil sie den Browser für alle Verbindungen unverwechselbar macht, die POST- und GET-Varianten sind darauf angewiesen, daß sie auch durchkommen, was bei Frames möglicherweise schwierig werden könnte.

In diesem Zusammenhang dürfte interessant sein, die Ausgabe von phpinfo(INFO_VARIABLES); zu studieren, da wird nämlich genau aufgeführt, welche Daten PHP woher vom Browser hat (Die Tabelle ist Bestandteil von phpinfo();).

- Sven Rautenberg