Logout session & cookie problem!
Bernd
- php
Guten Abend,
ich habe ein Problem und zwar funktioniert bei meinem Login Script das Logout system nicht richtig! Es sieht wie folgt aus:
session_start();
$cookie1 = setcookie("userid","",time()-180);
$cookie2 = setcookie("userpw","",time()-180);
session_destroy();
Eigentlich sollte damit sicher gestellt werden das die beiden cookies und die aktuelle session zerstört werden! funktioniert bei 99% aller fälle, aber es gibt nunmal auch rechner bei denen das löschen des cookies nicht funktioniert, dabei wurde der rechner erst frisch formatiert (WinXP, internet explorer)! ich bin bei meinen nachforschungen auf: session_unset(); gestoßen, löscht wohl mehr daten als session_destroy();! was würdet ihr mir empfehlen zu benutzen und habt ihr evt. eine ahnung wieso
setcookie("userid","",time()-180);
setcookie("userpw","",time()-180);
nicht funktionieren kann? gibts da evt. allgemeine probleme?
bernd
Hi,
$cookie1 = setcookie("userid","",time()-180);
$cookie2 = setcookie("userpw","",time()-180);
Du loescht hier lediglich zwei Cookies, das hat nix mit Session zu tun. Warum die die Cookies benutzt anstatt Deine Sessiondaten in $_SESSION["myData"] zu speichern enzieht sich allerdings meinem Verständnis. Ein Cookie ist in einer Session normalerweise lediglich _eine_ Variante, um die Session-id zu transportieren.
session_start(); // hält die Session
$_SESSION["myVar"]; // speichert Sessionvariablen
$_COOKIE["PHPSESSID"] // transportiert in der Server Standardkonfig die SessionID, alternativ auch hidden-inputs oder Get-Parameter.
session_destroy()
"löscht alle in Verbindung mit der aktuellen Session stehenden Daten. Mit der Session zusammenhängende globale Variablen und das Session-Cookie werden nicht gelöscht."
ich bin bei meinen nachforschungen auf: session_unset(); gestoßen
das sollte man nur verwenden, wenn man bei aelteren PHP-Versionen noch mit session_register arbeitet. Verwende statt dessen unset($_SESSION[...]) um bestimmte Session Variablen zu loeschen.
Gruesse, Joachim
danke für die ganzen infos!
nur was tun wenn trotz:
setcookie("userid","",time()-180);
setcookie("userpw","",time()-180);
die cookies weiterleben?
bernd
Hi,
nur was tun wenn trotz:
setcookie("userpw","",time()-180);
ich hoffe Du hast meinen Infos auch entnommen, dass dieser Ansatz Unsinn ist.
die cookies weiterleben?
cookies werden so geloescht. Dein Fehler muss woanders liegen.
Gruesse, Joachim
das cookie wurde so gesetzt:
setcookie('id', ''.$uid"].'', time()+60*60*24*30, '/');
muss das '/' hinter der zeitangabe auch wieder mit rein, also so:
setcookie("userid","",time()-180,"/")
oder ist das egal, denn ich habe das gelesen:
Cookies müssen mit den selben Parametern gelöscht werden, mit denen sie gesetzt wurden. Ist der value-Parameter ein leerer String oder FALSE und alle anderen Werte entsprechen dem früheren Aufruf von setcookie, wird das Cookie mit dem angegebenen Namen vom Client gelöscht.
Bernd
hi,
das cookie wurde so gesetzt:
setcookie('id', ''.$uid"].'', time()+60*60*24*30, '/');
Exakt so?
setcookie("userid","",time()-180,"/")
oder ist das egal, denn ich habe das gelesen:
Cookies müssen mit den selben Parametern gelöscht werden, mit denen sie gesetzt wurden.
Der Name des Cookies dürfte einer der Parameter sein, für den das auf jeden Fall absolut erforderlich ist.
gruß,
wahsaga