Cookie löschen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
beenden
browser
code
datei
erfolg
erstellen
fehler
funktionieren
funktioniert danke
gleichen ordner
http
liegen
login
problem
server
session
setzen
team
url
vergangenheit
-
Hallo,
ich habe mal wieder ein kleines Problem ich mache ein login und sezte da folgendermaßen ein cookie:
setcookie("id",$id,time()+60*60*24*30); setcookie("pass",$pass,time()+60*60*24*30);
Jetzt will ich in einer logout den cookie iweder löschen also nehme ich:
setcookie("id",$id,time()-60*60*24*30); setcookie("pass",$pass,time()-60*60*24*30);
Das problem ist das der cookie einfach nicht verschwindet und auch keine Fehlermedung ausgegben wird vlt könnt ihr mir ein Hinweis auf den Fehler geben??
Gruß -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ja bloss ich habe keine session gestartet oder gilt ein cookie auch als session ?? ich würde es geren mit cookies machen unt nicht mis session
-
okay sry, hab das falsch gelesen...
was du suchst findest du hier:
http://tut.php-q.net/de/cookies.html
du darfst also nicht die Variabel $pass setzen sondern muss "" einsetzen, schätze ich mal, dass es deshalb nicht funktioniert, wobei das eigentlich keinen unterschied machen dürfte, da die Zeit trotzdem in der Vergangenheit liegt, aber probiere es mal aus -
Nein daran dürfte es nicht liegen...
Aber nimm mal den Tipp von gap2 auf und lege den wert nicht soweit zurück time()-1 sollte eigentlich ausreichen... -
Jetzt sieht das gnaze so aus:
setcookie("id","",time()-1); setcookie("pass","",time()-1);
Allerdings ohne erfolg bin gerade bissl am verzweifeln kann das eventl am browser liegen ??
Beitrag zuletzt geändert: 19.11.2009 19:45:03 von goldschau -
was passiert denn, wenn du die Cookies im Browser manuell löscht? Bist du dann nicht mehr eingeloggt?
-
Wenn ich den cookie manuell lösche muss ich mich neu einloggen. Ich find das komisch weil das ja eigl funktionieren müsste und wenn ihr auch keine idee habt werde ich das morgen mal auf mein server laden und da mal testen
-
setcookie("id","",0); setcookie("pass","",0);
Das sollte die Cookies mit dem Beenden der aktuellen Session auslaufen lassen.
Gruß
styVe (qap2-Team)
Beitrag zuletzt geändert: 19.11.2009 21:22:30 von qap2 -
Ich habe die Seite jetzt mal probehalber auf mein server geladen allerdings ohne erfolg wenn ich die cookies direkt nach dem erstellen im gleichen script weider lösche funktioniert es ich habe eigl folgende script fürs loggout:
<?php setcookie("id","",time()-1); setcookie("pass","",time()-1); ?> <html> <head> <title>Unbenanntes Dokument</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> </body> </html>
und der wird aufgerufen drurch:
<a href="loggout.php" style="color:black; text-decoration:none;"> <input type="button" class="button" value="Loggout" style="cursor:hand; cursor:pointer; margin-left:10px;">
-
Darf ich dir einen ernst gemeinten Tipp geben?
Mach es mit Sessions, gerade für ein Login ist das eine sehr gängige Methode.
Wobei ich dir recht gebe, dass es eigentlich auch so funktionieren müsste, aber ich sehe da auch nichts mehr... -
Falls das Problem bisher noch nicht gelöst werden konnte:
http://www.hann3mann.de/web-artikel/5/Cookies-loeschen-mit-PHP.html
Funktioniert sicher und zuverlässig.
Gruß,
dex (qap2-Team) -
Hab gerade mal den Code von der Seite gneommen jedoch ohne erfolg ... Ich weiss das es mit session ziemlich gut und auch perfekt geht jedoch brauch ein login auch über session hinweg. Weil sich das login auf meiner Seite ziemlich nervig macht bzw dne user zimlich nervig vorkommen dürfte.
EDIT Ich habe gerade festgestellt das wnen ich ein neune coookie schreib mit gleichen name wird der cookie neu erstellt und der alte überschrieben ist doch eigl auch nicht normal oder ??
Beitrag zuletzt geändert: 20.11.2009 19:51:16 von goldschau -
Das kann doch nicht sein! Ihr habt jetzt 9 Antworten gegeben, und keine davon konnte das Problem lösen. Denkt mal darüber nach, ob ihr euch damit auskennt.
Dass ein bestehender Cookie beim Erstellen eines gleichnamigen überschrieben wird ist normal, so gewollt, und anders auch nicht möglich.
Also... Du setzt den Cookie auf den Wert '' oder "" (ist ja das selbe). Das Ablaufdatum in die Vergangenheit zu setzen bringt wenig, da der Cookie erst beim Browserneustart weg ist (falls das stimmt, was gesagt wurde). Es soll dem User aber auch möglich sein, sich ohne Browserneustart aus zu loggen. Deswegen prüfst du im PHP-Script einfach nicht mit isset(), sondern mit empty() ob der User eingeloggt ist, oder nicht. Achtung: "existierend" und "leer" ist natürlich ein Gegenteil, also wenn du bis jetzt mit isset() geprüft hast, nehme !empty(), wenn du bis jetzt mit !isset() geprüft hast (zuerst das machen, was passieren soll, wenn er ausgeloggt ist, dann im else-Teil das, wenn er eingeloggt ist), nimmst du empty(). -
Also ich habe den Fehler jetzt gefunden weiss nicht ob ich jetzt blöd bin oder ihr es auch nit wusstet ^^ . Also ich habe die loggout datei nicht im gleichen ordner gehabt wie die login datei also die datei wo der cookie gesetzt wird.Jetzt habe ich die loggout und die login im gleichen ordner und es funktioniert.
Danke für eure Hilfe. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage