2016-04-12 15 views
-1

Ich habe ein Problem. Wenn ich Cookie mit Boolean (nur false-Wert) festlegen möchte, speichert es nicht.PHP | Speichern boolescher Wert in Cookie

setcookie('myCookie',false); 

auch wenn ich hinzufügen Zeit

setcookie('myCookie',false,time()+3600); 

Hinweis verfallen: Undefined index: MyCookie in C: \ xampp \ htdocs \ Web \ php \ php_global_user.php in Zeile 4

+0

möglich Duplikat [PHP: Hinweis: Nicht definierte Variable und Notice: Undefined index] (http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined -index) –

+0

Nein, mein Problem ist das Speichern von FALSE in Cookie .... – StykPohlavsson

+0

'on line 4' also wo ist der Rest Ihres Codes? Außerdem werden Cookies erst beim Laden der zweiten Seite wirksam. –

Antwort

6

Cookies sind einfacher Text. Wenn Sie eine PHP boolean werfen nur auf Text Sie sinnvolle Werte mit true bekommen, weil das ist, wie PHP entwickelt wurde:

var_dump((string)true, (string)false); 
string(1) "1" 
string(0) "" 

Nur Text von Anfang an verwenden:

setcookie('myCookie', '0'); 

... oder :

setcookie('myCookie', $value ? '1' : '0'); 
1

Verwenden Sie stattdessen 0 und 1 und ändern Sie sie dann wieder in den booleschen Wert, wenn Sie den Cooki laden e:

// set value to example variable 
$setVar = true; 

// setting the cookie 
setcookie('myCookie', $setVar ? '1' : '0'); 

// reading the cookie 
$readVar = isset($_COOKIE['myCookie']) && $_COOKIE['myCookie'] === '1' ? true : false; 
+0

'wenn boolean_condition dann true else false' ist was ich syntaktisches Salz nenne ;-) –