kostenloser Webspace werbefrei: lima-city


Cookie löschen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    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ß
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. r*s

    mit session_destroy kannst du sessions beenden, achte darauf, dass die session vorher gestartet wurde ;-)
    oder du schreibst $_cookie["id"]="" dann ist der cookie leer.

    Beitrag zuletzt geändert: 19.11.2009 19:28:25 von rms
  4. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    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
  5. Vielleicht liegt es daran, dass du den Zeitwert zu weit zurücksetzt. Versuch es doch mal einfach nur mit time(), damit expire sofort einsetzt.

    Ansonsten meint php.de
    If set to 0, or omitted, the cookie will expire at the end of the session (when the browser closes).


    Gruß
    styVe (qap2-Team)
  6. r*s

    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
  7. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    Ich habe das ganze jetzt mal so probiert:
    setcookie("id","",time()-60*60*24*30);
    setcookie("pass","",time()-60*60*24*30);

    Allerdings ohne erfolg könnte es vlt daran liegen das ich es unter localhost probiere ??
  8. r*s

    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...
  9. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    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
  10. r*s

    was passiert denn, wenn du die Cookies im Browser manuell löscht? Bist du dann nicht mehr eingeloggt?
  11. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    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
  12. 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
  13. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    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;">
  14. r*s

    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...
  15. 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)
  16. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    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
  17. 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().
  18. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    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.
  19. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!