Sessions zerstören
Philipp
- php
0 Christian0 Rouven0 Andreas Korthaus
Hallo,
ich habe ein eigenes Login-System geschrieben. Hierfür verwende ich Session, in denen der Benutzername übertragen wird. Jetzt möchte ich die Session beim Logout zerstören. Leider tritt dabei aber immer ein fehler auf:
Script:
LINE4 $id = $HTTP_GET_VARS['id']; //ID auslesen aus URL
LINE5 session_id($id); //Session mit der ID->$id öffnen
LINE6 session_destroy(); //Alles Sessiondaten zerstören!!
Den fehler, den ich angezeigt bekomme lautet folgendermaßen:
"Warning: Wrong parameter count for session_destroy() in logout.php on line 6"
Noch eine zusatzfrage: -Manche User klicken nicht auf Logout. Ist es deswegen möglich die session anderst zu zerstören (z.B. nach 30min.)?
Könntet ihr mir dabei bitte weiterhelfen. Ich danke euch schon vielmals im vorraus.
cu Phil
ich kenn mich mit sessions nicht aus,
aber es wrong parameter count heißt ja wohl eindeutig, dass session_destroy();
irgendwelche parameter erwartet.
mfg
Hi,
ok es muss Parameter enthalten. Aber kann mir jemand sagen welche ???
vielen Dank
cu Phil
hm,
hab gerade mal bei selfphp geschaut. da steht dass es keine erwartet!! komisch! weiß auch nicht, sorry.
mfg
N'Abend,
also zunächst die einfache Frage:
Die Sessions zerstören sich - in einer vom Administrator eingestellten Zeit - von selbst. Dafür sorgt der Webserver. Je nach Einstellung geschieht dies sogar sobald der Browser dem die Session gehörte geschlossen wurde.
Zu der anderen Sachen: Also session_destroy braucht für gewöhnlich keine Parameter, damit gibt es - schätze ich - zwei Möglichkeiten für den Fehler:
Rouven
Hi!
Script:
LINE4 $id = $HTTP_GET_VARS['id']; //ID auslesen aus URL
LINE5 session_id($id); //Session mit der ID->$id öffnen
LINE6 session_destroy(); //Alles Sessiondaten zerstören!!
session_id() startet keine Session, siehe http://www.php3.de/manual/de/function.session-id.php, damit weist Du nur eine SessionID zu, was aber unnötig ist, denn das macht PHP alleine! Verwende statt Line 4 und 5 nur session_start().
Den fehler, den ich angezeigt bekomme lautet folgendermaßen:
"Warning: Wrong parameter count for session_destroy() in logout.php on line 6"
Kommt vermutlich daher dass PHP nicht weiß welche Session es beenden soll, da gar keine gestartet wurde!
Lies am besten mal http://www.php-faq.de/ch/ch-version4_session.html
http://www.php-faq.de/q/q-sessions-wie.html
http://www.php3.de/manual/de/ref.session.php
Grüße
Andreas