Bestimmte Session zerstören

mastermannrw

Mitglied
Ich möchte gerne bestimmte Sessions, die nicht mit der eingeloggten Session in verbindung stehen, löschen.
So viel ich weiß, bezieht sich SESSION_DESTROY() immer auf die aktuelle, aktive session.
Gibt es eine Möglichkeit, eine Session mit einer anderen ID zu zerstören?

Danke.
 
Warum willst du das machen?
Eine Session steht immer in Verbindung mit dem Benutzer, und mit sonst keinem anderen.
D.h. [phpf]session_destroy[/phpf] zerstört nur die Session vom aktuellen Benutzer.

Du kannst höchsten bestimmte Daten aus der Session löschen/zerstören.
Dies machst du dann z.b. so:
PHP:
unset($_SESSION['beliebigerIndex']);

Gruß

Devil
 
Also. In meinem Script läuft eine Überwachung der User, die Online sind. Sind diese mehr als 10 Minuten inaktiv, werden sie aus der Datenbank gelöscht. Zusätzlich soll die dazugehörige Session zerstört werden. Denn es bringt mir ja nichts, wenn die Session immer noch gültig ist, wenn der User angeblich nicht mehr Online ist.
Oder hast wer eine andere Idee, wie sich das lösen läßt?
 
Achso das meinst du.
In der php.ini gibt es eine Einstellung welche session.gc_maxlifetime heisst.
Diese hat standardmässig den Wert 1440. Der Sinn dieser Einstellung ist, dass eben nicht mehr gültige Sessions nach 1440 Sekunden bzw. 30 Minuten automatisch gelöscht werden.
Darüber musst du dir also keine Sorgen machen.

Gruß

Devil
 
Das Theam läßt mich nicht los. :)



Warum habe ich, nachdem ich eine Session mit destroy_session() im Logoff-Script zerstört habe, wieder exakt die gleiche Session ID, wenn ich mich dann neu anmelde?
Is das normal oder leigt das am Code? Kennt dieses Problem jemand und kann direkt sagne Ahja, Du hast das und das Falsch gemacht?

Wie zerstöre ich zuverlässig einen Cookie?

Und zum Verständnis: Mit Session_start() erzeuge ich eine Session. Diese Funktion ist doch schon dafür zuständig, mir eine Session_id zu erzeugen oder? Danach wird Clientseitig ein Cookie zur Identifikation abgelegt. Die Anderen Sessionsachen, die nach dem Schema $_SESSION['var']=1 programmiert werden, landen auf dem Server. Ich hoffe, das ich das so weit richtig habe.
Wenn nun in einem Script session_start() aufgerufen wird, wird automatisch nach dem Cookie geschaut und wenn der da ist, wird die Session fortgesetzt.
Und nu dürft Ihr mich auseinander nehmen, weil ich keine Ahnung habe. :)
 
Stellt sich für mich jetzt die Farge, wie die ID bei einem Session Cookie ist.

Nach ein wenig rumprobieren kommt mir der Verdacht, das sich die Cooki_lifetime nicht ändern läßt. Der Cookie ist immer bis zu schließen des Browsers gültig, obwohl ich direkt vor Session_start() den session_cookie_set_parameters() benutzt habe. Oder muß der vor wirklich jedem session_start() stehen? Doch eine sehr komplizierte Geschichte mit den Sessions. Oder ich hab heute nicht genug Hirnschmalz für sowas. :)
 
Zuletzt bearbeitet:
mastermannrw hat gesagt.:
Stellt sich für mich jetzt die Farge, wie die ID bei einem Session Cookie ist.

Nach ein wenig rumprobieren kommt mir der Verdacht, das sich die Cooki_lifetime nicht ändern läßt. Der Cookie ist immer bis zu schließen des Browsers gültig, obwohl ich direkt vor Session_start() den session_cookie_set_parameters() benutzt habe. Oder muß der vor wirklich jedem session_start() stehen? Doch eine sehr komplizierte Geschichte mit den Sessions. Oder ich hab heute nicht genug Hirnschmalz für sowas. :)
Ich meine mich zu erinnern, dass das vor jedem session_start() stehen muss. Am besten mal auf php.net die Doku zu session_cookie_set_parameters() checken, ich mein da steht was dazu.
Einen Session-Cookie kannst Du ueber $_COOKIES meines Wissens nach so ansprechen:
PHP:
setcookie(session_name(),...

Devil Noxx hat gesagt.:
Der Sinn dieser Einstellung ist, dass eben nicht mehr gültige Sessions nach 1440 Sekunden bzw. 30 Minuten automatisch gelöscht werden.
1440 : 60 = 24
Es sind 24 Minuten. ;)
 
Zurück