Cookie Problem

Coach

Aktives Mitglied
Hallo,

ich versuche grad mein Loginskript mit Cookies zu erweitern. Setze das Ganze mit:
CODE
setcookie("name",$currentID,time()+(3600*24*30*12));
setcookie ("password",$login_lookup_row["USER_PASSWORD"],time()+(3600*24*30*12));


Das funktioniert auch soweit, jedenfalls gibt mir der Firefox (unter Einstellungen > Cookies anzeigen)
die beiden Cookies mit den Werten an.
Will ich jetzt diese jedoch mit einem einfachen print_r($_COOKIE); ausgeben, erhalte ich keinen Cookie (außer der PHPSESSID). Kann mir jemand sagen, woran das liegen könnte?
 
Wichtig: Du kannst das Cookie erst beim nächsten Request ausgeben.
 
Danke für deine Antwort.
Aber das ist nicht die Lösung. Hab das alles mehrmals neu geladen.
 
Hast du den Cookienamen beim auslesen auch im Code?

CODE
setcookie("floho_cookie", "", time()+3600); //Cookie anlegen und Lebensdauer auf eine Stunde setzten

$value = $_POST['name'];
setcookie("floho_cookie[0]", $value); // Name in Cookie speichern
$value = $_POST['password'];
setcookie("floho_cookie[1]", $value); //Passwort in Cookie speichern

if (isset($_COOKIE['floho_cookie'])) {// Ueberpruefen, ob Cookie existiert
$coco = $_COOKIE['floho_cookie']; //Cookie Inhalt (Array) in Variable $coco speichern
print_r($coco); //Cookie Inhalt ausgeben
}
else
{
echo "Cookie nicht gefunden";
}



Bei meinem Beispiel ist das Cookie als Array, es gibt also nicht zwei verschiedene. Die Daten werden per POST übernommen. Aber das Wichtigste ist in Zeile 9, wo das Cookie gelesen wird.
 
QUOTE (Coach @ Do 3.01.2008, 19:13) das "floho_quiz_cookie" ist´n Schreibfehler, oder?

Ja... Müsste "floho_cookie" heissen.
biggrin.gif
 
Bei der Namensgebung muss ich ja mit einem Buchstaben beginnen. Gibt es noch andere Einschränkungen, verbotene Zeichen?
 
Wie sieht es mit dem Auslesen aus? Läuft das im identischen Ordner?
Und welchen Ordner gibt der FireFox als Pfad-Angabe aus, stimmt der mit dem Pfad zum auslesenden Code überein?

Wenn nicht, dann den Pfad mit übergeben
 
Das hier funktioniert bei mir:

$t = time()+60*60;
SetCookie("cookiename","wert des cookie",$t,"/",".domain.ch");

1 h gültig in allen Vereichnissen und Subdomains
 
QUOTE (radarin @ Fr 4.01.2008, 15:12)Bei der Namensgebung muss ich ja mit einem Buchstaben beginnen. Gibt es noch andere Einschränkungen, verbotene Zeichen?

Solche Dinge werden im Web immer über RFCs (Request for Comments) geregelt.

Cookies werden vom http://rfc.net/rfc2109.html abgearbeitet. Netscape hat diese Dinger ja eingeführt, RFC2109 von 1997 (grade mal 10 Jahre alt) schuf dann die grundlegende Basis. Das muß zentral geregelt werden, weil Cookies im Http-Header transportiert werden, also mußten zwei neue Http-Header definiert werden: Set-Cookie vom Server zum Empfänger, Cookie vom Empfänger zum Server.

Cookies sind technisch Attributname / Wert - Paare, Attributnamen sind (4.1):


QUOTE a sequence of non-special, non-white space characters
...
Attributes (names) (attr) are case-insensitive. White space is permitted between tokens.


Schön sind die Beispiele 5.1 / 5.2, da sieht man, was tatsächlich gesendet wird.

Beispiel vom Webserver zum Browser:


QUOTE Set-Cookie: Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"


'Customer' ist der Cookie-Name. Sprich: Grossbuchstaben plus Zahlen.

Die Regeln für Header entsprechen im Prinzip jenen für MIME. Sprich: Der gesamte Ausdruck nach Set-Cookie: müßte eigentlich bsp. als UTF-8 oder als Base64 maskierbar sein, so daß auch Umlaute oder asiatische Zeichen in Cookienamen erlaubt wären. Allerdings kann das auch schiefgehen - also lieber bloß Großbuchstaben.

PS: Aus einem Mailheader eines Münchner Kunden rauskopiert:


QUOTE from: "=?utf-8?Q?Max Mustermann, Name der Firma M=C3=BCnchen?="
<mail@example.de>


kommt an als


QUOTE "Max Mustermann, Name der Firma München" <mail@example.de>


Da das korrektes MIME ist und von Mailprogrammen korrekt verstanden wird (auch wenn das für uns unübersichtlich aussieht), müßte man auch alles, was oben hinter Set-Cookie: steht, analog codieren können. Also doch beliebige Buchstaben, da oben ja alles per UTF-8 erlaubt ist.
 
QUOTE (NC @ Do 3.01.2008, 23:59)
QUOTE (Coach @ Do 3.01.2008, 19:13) das "floho_quiz_cookie" ist´n Schreibfehler, oder?

Ja... Müsste "floho_cookie" heissen.
biggrin.gif


Danke für eure Korrektur, hab meinen Beitrag entsprechend editiert. Da übernimmt man eine Zeile aus einer aktuellen Arbeit, passt nicht auf und schon ist es passiert
smile.gif
Stammt von hier: http://floho.ch/tests/quiz6.php
wink.gif
 
Zurück
Oben