EHamann Geschrieben 18. Mai 2012 Geschrieben 18. Mai 2012 Hi, ich bin gerade dabei eine von uns intern geschriebene Website von PHP Sessions auf Cookies umzustellen. Ich überprüfe auf jeder Seite ob das Cookie gesetzt ist. Im selben Schritt möchte ich das Cookie praktisch refreshen. Sprich die Gültigkeit erneuern. Jetzt zu meinem Problem: Im Internet habe ich gelesen, dass man ein Cookie wenn überhaupt nur überschreiben kann. Soweit so gut. Wenn ich das Cookie überschreiben will erstellt er ein neues Cookie, ich denke das liegt an der Ordnerstruktur da das Cookie pro Ordner neu erstellt wird. Ich will jedoch nur ein Cookie setzen. Hier mal mein Code, vielleicht fehlt ja noch was beim setzen des Cookies. function set_cookie($cookie_inhalt) { setcookie("mycookie", $cookie_inhalt, time()+3600, "/"); } function unset_cookie() { setcookie("mycookie", $cookie_inhalt, time()-3600, "/"); } function check_cookie() { if(isset($_COOKIE["mycookie"])) { refresh_cookie(); return true; } else { return false; } } function refresh_cookie() { $cookie = explode("|",$_COOKIE["mycookie"]); $cookie_inhalt = join( "|", $cookie ); unset_cookie(); set_cookie($cookie_inhalt); } Danke fürs lesen! Gruß Edward
chooter696 Geschrieben 18. Mai 2012 Geschrieben 18. Mai 2012 erstmal das geht alles viel einfacher. Deine unset Methode brauchst du nicht wenn du sowieso einen neuen setzt. setcookie("mycookie", $cookie_inhalt, time()+3600, "/"); Was daran funktioniert jetzt nicht? Zum Thema löschen eines Cookies. setcookie("mycookie", $cookie_inhalt, time()-3600, "/"); also man kann es auch übertreiben time() gibt dir die aktuelle Zeit aus und du setzt die gütligkeit auf einen Tag zurück. Es reicht auch time()-1 desweiteren stellt sich mir die Frage wozu du folgenden Code ausführst? $cookie = explode("|",$_COOKIE["mycookie"]); $cookie_inhalt = join( "|", $cookie );[/PHP] welchen Sinn hat es deinen Cookie in ein Array zu verwandeln wenn du ihn sofort wieder in einem String verwandelst? [PHP] function set_cookie($cookie_inhalt) { setcookie("mycookie", $cookie_inhalt, time()+3600, "/"); } function check_cookie() { isset($_COOKIE["mycookie"]) ? set_cookie($_COOKIE["mycookie"]); return true; : return false; } Das wäre dann schon alles was du brauchst
EHamann Geschrieben 18. Mai 2012 Autor Geschrieben 18. Mai 2012 Hey, erst mal danke für die schnelle Antwort! Nachdem ich eben ein paar mal die Seite aktualisiert hatte, hat's geklappt Weiß nicht woran es lag. Klappt jetzt auf jeden fall. Zu deinen anderen Tips: Die werde ich auf jeden fall versuchen mit umzusetzen Damit wäre das Thema jetzt denke ich mal Closed. Danke!:bimei
chooter696 Geschrieben 18. Mai 2012 Geschrieben 18. Mai 2012 Nachdem ich eben ein paar mal die Seite aktualisiert hatte, hat's geklappt das liegt daran das Dein Cache die Seite noch geladen hat. Es gibt Adons für Browser wo du diesen auschalten kannst. FF zb. Firebug sehr gut zur entwicklung
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden