2015-03-18 1 views
0

Этот код не будет работать:

$var = "John"; 
if(setcookie($var,"info", time() + 3600)) { 
    echo 'TRUE'; 
} 

Это один работает:

if(setcookie("John","info", time() + 3600)) { 
    echo 'TRUE'; 
} 

Я могу видеть "TRUE" слово в обоих случаях, но в первый из которых cookie пропускается каждый раз без ошибок.

Я работаю с wordpress, если это помогает.

+0

Как вы называете cookie? Как этот '$ _COOKIE [$ var]' или этот '$ _COOKIE [" John "]'? – bloodyKnuckles

+0

Какой выход изменяет «echo» TRUE »,' to echo 'TRUE: #'; var_dump ($ Var); echo '#'; 'произвести? –

+0

bloodyKnuckles: firstone Рентген: Джон – shinobieddo

ответ

0
<?php 
$cookie_name = "cookie_name"; 
$cookie_value = "Cookie Value"; 
setcookie($cookie_name, $cookie_value, time() + (86400 * 30)); 
?> 
<?php 
if(!isset($_COOKIE[$cookie_name])) { 
    echo "Cookie named '" . $cookie_name . "' is not set!"; 
} else { 
    echo "Cookie '" . $cookie_name . "' is set!<br>"; 
    echo "Value is: " . $_COOKIE[$cookie_name]; 
} 
?> 

Вы можете назвать оба $ _COOKIE [$ cookie_name] или $ _COOKIE [ "имя"] $ _COOKIE является глобальной переменной, если куки истекает Время < времени(), вы теряете ценность печенья.

0

Попробуйте это будет работать:

$var = "John"; 
setcookie($var,"info", time() + 3600, "/"); 

if(isset($_COOKIE['John'])) 
{ 
    echo "True"; 
} 
0

OK, моя ошибка. Я фактически ставил в качестве имени cookie значение db, которое было похоже на «someting.something».

Единственное, что я сделал, чтобы заставить его работать, было удалить точку. -> «что-то».

Cookies не любят точки ... Спасибо всем!

Смежные вопросы