Cookies werden nicht gesetzt
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ablegen
array
blocken
code
date
datum
domain
einfaches echo
header
http
inhalt
manual
parameter
regel
setzen
url
verfall
wert parameter
zeichen
zweite parameter
-
Hallo lc-comunity,
ich habe dieses php codeschnipsel... irgendwie wird kein cookie gesetzt und daher immer "else" benutzt.
if(isset($_COOKIE['cookie'])){ $user = $_COOKIE['cookie']; $secret = $_COOKIE['cookie1']; } else{ setcookie("cookie", $_GET['u'], time()+3600, "/~rasmus/", ".domain.com", 1); setcookie("cookie1", $_GET['s'], time()+3600, "/~rasmus/", ".domain.com", 1); $user_id = $_GET['id']; $secret_apikey = $_GET['a']; }
ich habe es auch mit
setcookie("cookie", $_GET['u'], time()+3600, "/");
probiert...
Wisst ihr woran der Fehler liegt?
lg
Beitrag zuletzt geändert: 22.11.2014 18:18:43 von mczernin -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hackyourlife schrieb:
Wird vor diesem Code-Block noch kein Zeichen ausgegeben? Wenn vorher schon irgendwas ausgegeben wurde (auch wenn es nur ein Leerzeichen, Zeilenumbruch oder sonst was ist), dann wurde der HTTP-Header bereits geschickt und du kannst kein Cookie mehr setzen (was im HTTP-Header übertragen wird).
Nein es wird nichts über php ausgegeben... es fängt nur eine Funktion an und davor ist der <head> in html. Ich habe jetzt versucht ganz am Anfang der Seite ein Cookie zu setzen... Und es FUNKTIONIERT!
LG Max -
Hallo
beim Cookie setzen ist der erste Wert (Parameter) der "Name" (Bezeichnung)
und nur der zweite Parameter ist der Inhalt (value), ....
setcookie( "Name" , "Wert" );
... der dritte Parameter ist dann das Verfalls-Datum (expire date)
$xpiredate = time()+3600; setcookie( "Name" , "Wert" , $xpiredate );
... weitere Argumente (path, domain, secure) siehe PHP Manual: setcookie
wenn Du mehrere Werte in ein einziges Cookie speichern willst,
dann musst Du die einzelnen Werte als ein Array übergeben
weil ja nur 1 Parameter (der zweite) für Inhalte (value) da ist
$timestamp = time(); $xpiredate = $timestamp+3600; // -- zu Speichernde Daten in Array ablegen $set_data = array ( 100, $_GET['u'], 'Infotext', $timestamp ); // -- beim Erstellen des Cookie als Value das Array angeben setcookie( "MeinCookie" , $set_data , $xpiredate );
dann hast Du in Deinem Cookie (Name) die Daten (Value) als Array
und um Array im Broser auszugeben genügt ein einfaches "echo" nicht
wenn $_COOKIE["MeinCookie"] ein Array ist, dann geht das so NICHT ....
....echo $_COOKIE["MeinCookie"];......
zur Anzeige (Debug) bei Array empfiehlt sich als Ausgabe print_r()
// -------------------- print '<pre style="margin:2px; padding:4px; text-align:left; background:#DEDEDE; color:#000066;">'."\n"; print_r($_COOKIE); print '</pre>'; // --------------------
damit sieht man in der Regel alle Daten auch Arrays und Sub-Arrays, etc.
Beispiel
<?php // ------------------------------------------------- $value1 = "my cookie value"; $value2 = 17; $value3 = time(); $val_usr = $_GET['u']; $val_usr = htmlentities($val_usr); $val_sec = $_GET['s']; $val_sec = htmlentities($val_sec); // ----------------------------------- $arr_data1 = array( $val_usr, $value1, $value2, $value3 ); // ---- Array 1 ---- $arr_data2 = array( $val_sec, $value1, $value2, $value3 ); // ---- Array 2 ---- // ----------------------------------- $timestamp = time(); $expir_date = ($timestamp + 3600); setcookie( "TestCookie1" , $arr_data1 , $expir_date); // ---- Cookie1 = (Array 1) ---- setcookie( "TestCookie2" , $arr_data2 , $expir_date); // ---- Cookie2 = (Array 2) ---- setcookie( "TestCookie3" , "Blablabla." , $expir_date); // ---- Cookie3 = (String) ---- // ------------------------------------------------- ?> <html> <body> <br /> TEST <?php // ------------------------------------------------- $cname1 = 'TestCookie1'; // ------------------------------------------------- if (isset($_COOKIE[$cname1])) { if (is_array($_COOKIE[$cname1]) && !empty($_COOKIE[$cname1])) { echo " <br /> COOKIE:: ".$cname1." \n"; foreach ($_COOKIE[$cname1] as $name => $value) { echo " <br /> KEY: ".$name." --- VALUE: <strong>".$value."</strong> \n"; } } } // ------------------------------------------------- print '<br />'; print '<br />'; print '<br /> Alle COOKIE Daten '; print '<br />'; print '<pre style="margin:2px; padding:4px; text-align:left; background:#DEDEDE; color:#000066;">'."\n"; print_r($_COOKIE); print '</pre>'; // ------------------------------------------------- ?> <br /> <br /> </body> </html>
Beitrag zuletzt geändert: 25.11.2014 12:38:19 von seitetop -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage