Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] cookie läßt sich nicht löschen???!

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • rudygotya
    hat ein Thema erstellt [Erledigt] cookie läßt sich nicht löschen???!.

    [Erledigt] cookie läßt sich nicht löschen???!

    Hi, sorry, aber ich komm nicht drauf. Hab folgenden code:

    PHP-Code:

    if(isset($_COOKIE['xyz'])) {
      
    $value $_COOKIE['xyz'];
      
    $value2 $_COOKIE['abc'];
      
      
    $cookiename "xyz";
      
    $cookievalue "";
      
    setcookie($cookiename$cookievaluetime()-3600);
      
    $cookiename "abc";
      
    $cookievalue "";
      
    setcookie($cookiename$cookievaluetime()-3600);
    ....... 
    Leider lassen sich die 2 betreffenden cookies damit nicht löschen. Code wird auch vorm header ausgeführt. Hilft anscheinend auch nix, wenn ich den cookie mit value löschen will.

    Wäre dankbar für Hilfe

  • rudygotya
    antwortet
    Ich geb dir schon Recht, hatte auch extra -3600 drinnen :> zum testen hab ich bei mir local nen webserver laufen, daher dürfte der timestamp unterschied nicht allzu groß sein Erstaunlicherweise löscht mir der IE beide cookies sofort, der mozilla firefox löscht nur einen, mit opera klappt noch nicht mal das setzen unbedingt so, wie man das haben möchte. Beim Opera haben dafür session cookies einwandfrei funktioniert, die sich dann auch problemlos löschen lassen....liegt halt leider auch an der unterschiedlichen Art und Weise, wie die Browser die cookies speichern..
    Hab auch mitm header herumgespielt, der firefox löscht genau dann einen von beiden cookies, wenn man den serverpfad aufs root stellt,sonst ging bei mir gar nix

    Und zum auslesen der Werte hatte ich ja extra ein testfile, daß ich im neuen tab immer wieder nach dem request aufgerufen hab. Cookies zulassen muß er ja, wenn er ins admin menü will...

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    Um es klar zu stellen:

    letztendlich hat man auf ein einmal gesetztes Cookie keinen Einfluss mehr. Man kann sich nur darauf verlassen, dass der Browser das Cookie schon löscht, wenn man es als abgelaufen markiert. Da der Brwoser aber von der Zeit auf dem Client-Rechner ausgeht, sollte man nicht unbedingt time() nehmen, sondern time()-60*60 oder so, um auf Nummer sicher zu gehen.
    Ebenso besteht keine Möglichkeit, zu prüfen, ob der Client Cookies zulässt. Das Cookie wird gesendet und erst beim nächsten Request kann man sehen, ob das Cookie angenommen wurde. Genauso verhält es sich auch mit dem Löschen.

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Zitat von SJahr Beitrag anzeigen
    Mach time()-1, dann ist das Cookie veraltet und sollte gelöscht werden. Ich dachte gerade du willst nur den Inhalt löschen.
    Zitat von SJahr Beitrag anzeigen
    Lass die Cookies einfach auslaufen. Eventuell mach doch time()+1. Dann sollte es ja sofort ablaufen.
    Bitte nur Posten, wenn man weiß wovon man redet. Raten verlängert den Thread nur unnütz...

    Einen Kommentar schreiben:


  • rudygotya
    antwortet
    Naja, was anderes hab ich eigentlich auch nicht gemacht
    Zum cookie ausgeben hab ich ne eigene datei verwendet, daran lags nicht.
    So blöd wies klingt, ich denk, das lag am cash, hab den exakt gleichen code wieder eingegeben, diesmal mit cookie value wert gelöscht und weg war er.

    Allerdings versteh ich den Fehler immer noch nicht, da ich den cookie so wie du auch ohne value löschen wollte..trotzdem danke für die schnelle Hilfe !!


    edit:
    _____________________
    Falls jemand mal den gleichen Fehler hat: Mozilla Firefox (bei mir Version 2.0.0.14) weigert sich gerne, mehrere cookie_Befehle hintereinander auszuführen. Ein setcookie ist anscheinend erlaubt, wenn 2 hintereinander folgen, führt er keinen! von beiden mehr aus.

    Einen Kommentar schreiben:


  • HPR1974
    antwortet
    also eigentlich wird der cookie so gelöscht:
    setcookie('abc','',time()-1);
    wenn Du jetzt direkt danach ein
    print_r($_COOKIE);
    wird er wieder ausgegeben...
    Das liegt daran, dass Du das den cookie im client erst löschst nachdem der Server seinen output an den client gesendet hat...
    das bedeutet ein zwischenschritt ist notwendig Du kannst auch so vorgehen:
    setcookie('abc','',time()-1);
    unset(
    $_COOKIE);

    Einen Kommentar schreiben:


  • rudygotya
    antwortet
    Hab mir ne kleine Testdatei geschrieben, die ich nach dem logout aufruf.

    PHP-Code:
    <?php

    echo "1: ".$_COOKIE['xyz']."<br/>";
    echo 
    "2: ".$_COOKIE['abc'];
      
    ?>
    zeigt mir leider immer die werte an. Auch ins admin panel komm ich, sofern ich den admin nicht auf offline setz

    Einen Kommentar schreiben:


  • HPR1974
    antwortet
    wann prüfst Du denn wie, ob der cookie noch vorhanden ist?

    Einen Kommentar schreiben:


  • rudygotya
    antwortet
    Geht auch nicht, muß irgendwie am code liegen. Hab keine Session gestartet als ich den cookie gesetzt hab. Kann das sein, daß der cookie dann im memory des Browsers statt local aufm pc ist?

    Ne, hilft auch nix...

    Einen Kommentar schreiben:


  • SJahr
    antwortet
    Stimmt da steht ja schon -3600. Sorry, hab da + gelesen

    Lass die Cookies einfach auslaufen. Eventuell mach doch time()+1. Dann sollte es ja sofort ablaufen.

    Einen Kommentar schreiben:


  • rudygotya
    antwortet
    Ne, die Values nehm ich, um den Admin auf offline zu setzen. Danach sollte er eigentlich auch sofort den cookie löschen.
    Hmm, macht leider keinen Unterschied, ob da -1 oder -3600 dasteht. trotzdem danke für die Hilfe

    Einen Kommentar schreiben:


  • SJahr
    antwortet
    Mach time()-1, dann ist das Cookie veraltet und sollte gelöscht werden. Ich dachte gerade du willst nur den Inhalt löschen.

    Einen Kommentar schreiben:


  • rudygotya
    antwortet
    Damit lösch ich doch nur eine Variable in meinem Script, aber doch nicht den cookie bei mir aufm Rechner oder seh ich das falsch??

    Einen Kommentar schreiben:


  • SJahr
    antwortet
    Hast du schonmal unset() versucht?

    Einen Kommentar schreiben:


  • rudygotya
    antwortet
    (da hat er recht) nuja, war gedanklich schon wieder weiter :P

    Einen Kommentar schreiben:

Lädt...
X