Variablenübergabe mit Session - seltsam...

Facor

Grünschnabel
Hi,
folgende Frage:


Wie genau wird die Session ID übertragen wenn
- ich sie nicht über ein Formular übergebe
- ich sie nicht an die URL anhänge
- kein Cookie auf dem Client angelegt wird
- session.use_trans_sid auf 0 steht
?

Ich benutze session_start() auf jeder Seite um die Session zu starten und $_SESSION['X']=Y um Daten zu speichern. So kann ich auf jeder Seite auf die Date zugreifen.
Sonst kümmere ich mich um nix!
Es wird nur eine Datei auf dem Server angelegt in der die Session Daten abgelet werden.
Loggen sich mehrere User ein gibt es logischerweise mehrere solcher Dateien auf dem Server.
Woher weiß der Browser jetzt beim Aufruf einer Seite dass er von z.B. 5 Dateien, die auf dem Server angelegt wurden, genau die richtige Datei benutzen muss die zum jeweiligen User gehört.

Einstellungen der php.ini (PHP-Version 4.3.4)
[Session]
session.save_handler = files
session.save_path = /tmp
session.use_cookies = 1
; session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
;session.entropy_length = 16
;session.entropy_file = /dev/urandom
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0

Server ist Apache.

Danke und Gruß,

Facor
 
Laut deiner Beschreibung wird keine Session-ID übertragen. Allerdings wird laut deiner PHP-Konfiguration die Session-ID in einem Cookie abgelegt (session.use_cookies = 1).
 
Hi,
danke für die Antwort.

genau so sehe ich das auch. Allerdings wird kein Cookie auf dem Client, zumindest im Verzeichnis c:\dokumente und einstellungen\user\cookies, angelegt.

Und dafür suche ich eine Erklärung!
 
Das sind die sogenannten Session-Cookies.

Ich hab bisher noch keinen Rechner gefunden, wo die bei den normalen Cookies gespeichert gewesen wären.

Ehrlich gesagt weiß ich auch nicht, wo die eigentlich hingehören.

Aber bisher dachte ich eigentlich, dass die Serverseitig gespeichert werden?

cu shutdown
 
ja,

wie schon gesagt, es wird ein File auf dem Server angelegt. Ist mir auch recht, finde ich besser als auf dem Client.
Es funktioniert ja auch alles so wie ich es will aber ich möchte gerne wissen: wieso es funktioniert.
In der php doku stehen nur 3 Möglichkeiten, wie Session-ID's übermittlet werden:
- URL
- Cookies
- wenn session.use_trans_sid=1, dann hängt php automatisch die SID an.

Keine der Möglichkeiten benutze ich!

Sessioncookies, was ist das genau?

Facor
 
Ich kann mir das nur so erklären, dass auf dem Client ein Session Cookie angelegt wird. Wo genau keine Ahnung, und auf dem Server die ganzen dazugehörigen Session-Inhalte. Damit der Server weiß, welche Inhalte zu einer Session gehören, wird beim Response die Session-ID mitgeliefert um die Inhalte zuordnen zu können. Das Verfahren gilt natürlich nur bei session.use_only_cookies. Korrekt?

Aber ich würde gerne wissen, wie lange die Session-Cookies und die Session-Inhalte aktiv bleiben. Ich kann ja session.cookie_lifetime z.B. auf 1200 setzen, damit wäre das Cookie 20 minuten gültig. Wird diese Lebenszeit denn bei jedem Seitenaufruf wieder erneuert oder läuft die Gültigklkeit nach 20 min ab? Was ist mit den Sessioninhalten bei session.gc_maxlifetime? Wird diese Lebenszeit erneuert oder ist die fix?
 
Zuletzt bearbeitet:
Zurück