phpbar.de logo

Mailinglisten-Archive

[php] Neue Session ID erzwingen

[php] Neue Session ID erzwingen

Sebastian Mendel lists at sebastianmendel.de
Don Jul 1 12:49:05 CEST 2004


Andreas Müller schrieb:

> Hallo Sebastian,
> 
>>woher sollte PHP denn wissen ob die Session-ID ungültig ist?
> 
> ganz einfach: Es kommt eine Session-ID aber die Session dazu existiert
> nicht. Normal erzeugt PHP bei einer neuen Session eine Session ID und
> erzeugt im savehandler einen Eintrag für diese Session-ID. Dieser Eintrag
> wird im Fall von Session-Timeouts wieder gelöscht. Fehlt so ein Eintrag also
> ist also die Session ID ungültig geworden.
> Ich verlange ja garnicht das PHP unique Session-ID's erzeugt, das wäre
> sicher etwas viel verlangt.

Falsch. Die Session-Datei wird erst angelegt wenn Daten in der Session 
gespeichert werden. Da man Sessions aber auch laufen lassen kann, z.b. 
nur um die Benutzer anhand der Session-ID zu verfolgen/loggen, ohne 
Daten darin zu speichern legt PHP in diesem Fall keine Daten ab, die 
Session 'existiert' also mit deinen Worten nicht.

RTFM

aus dem Handbuch: "Note: Please note when working with sessions that a 
record of a session is not created until a variable has been registered 
using the session_register() function or by adding a new key to the 
$_SESSION superglobal array. This holds true regardless of if a session 
has been started using the session_start() function."


>>p.s. Wenn du es mitloggst kannst du doch einfach anhand der 
>>Zeit erkennen ob es ein neuer Besuch/Session ist oder nicht.
> 
> Zeit ist eine ganz schlechte Idee weil ich weiss ja nicht wie schnell der
> Benutzer wieder was macht.
> Noch was dazu: Benutzer geben auch Links weiter - mit Session-ID :-)

Dann nimm den Wert der als session.timeout einegestellt ist, das hast du 
das selber ergebnis! Denn wie schnell der Benutzer wieder was macht oder 
übergebabe der Links mit SID an andere macht auch bei dem Manuellen 
Unterscheiden ob neue Session oder ncith Probleme, auch dort musst du 
mit Timeouts arbeiten ... auch wenn du hier automatisch den Timeout aus 
der PHP.ini nimmst was sich auf das vorheandensein der Session-Daten 
auswirkt - es ist das selbe!

RTFM: Sessions


-- 
Sebastian Mendel

www.sebastianmendel.de www.warzonez.de www.tekkno4u.de www.nofetish.com
www.sf.net/projects/phpdatetime        www.sf.net/projects/phptimesheet

php::bar PHP Wiki   -   Listenarchive