Файлы cookie PHP не устанавливаются

У меня проблемы с настройкой файлов cookie. Проблема в том, что мои файлы cookie даже не устанавливаются, я настроил тест ниже, чтобы увидеть, устанавливаются ли они, но они никогда не устанавливаются. Я даже проверил в своем браузере, не устанавливается ли что-нибудь, но ничего с моего сайта.

Я хотел бы, чтобы вы помогли мне сделать мой набор печенья. Я не совсем уверен, что делать. Спасибо.

Вот мой код:

<?php 
session_start();

setcookie("ridArray","", time()+3600);

if (isset($_COOKIE['ridArray'])) {
    echo "ridArray is set.";    
}
?> 
<head>
</head>
<html> 
<body>
<?php
if (isset($_COOKIE['ridArray'])) {
    echo "ridArray is set.";    
} else { echo "not set"; } 
?> 
</body>
</html> 

person tushar747    schedule 17.01.2012    source источник
comment
Пробовали обновить страницу? Файл cookie не будет доступен в $_COOKIE в том же запросе, в котором он устанавливается.   -  person deceze♦    schedule 17.01.2012
comment
Вы не можете установить cookie с пустым значением. Проверьте это stackoverflow.com/questions /8775572/   -  person WordsWorth    schedule 17.01.2012
comment
@WordsWorth О да, спасибо, теперь все работает. Спасибо. Если вы поместите это как ответ, я могу отметить это, и вы получите признание, и люди смогут это увидеть.   -  person tushar747    schedule 17.01.2012


Ответы (1)


Вот проблема из документации SetCookie:

Файлы cookie должны быть удалены с теми же параметрами, с которыми они были установлены. Если аргумент value является пустой строкой или FALSE, а все остальные аргументы соответствуют предыдущему вызову setcookie, то cookie с указанным именем будет удален с удаленного клиента. Внутренне это достигается путем установки значения «удалено» и срока действия на один год в прошлом.

Вы устанавливаете значение cookie в пустую строку (""). Пытаться:

setcookie("ridArray","not blank value", time()+3600);

Другая проблема заключается в том, что когда вы устанавливаете файл cookie, он не будет отображаться в заголовках запроса (доступ через $_COOKIE) до загрузки следующей страницы. Это означает, что когда вы загружаете эту страницу в первый раз, $_COOKIE['ridArray'] НЕ будет установлен. При последующих загрузках он будет установлен и каждый раз будет сбрасываться.

Загрузка первой страницы не будет установлена. Обновите, и он будет установлен.

Самый простой способ отладить файлы cookie — использовать что-то вроде инструментов разработчика Chrome или FireBug Firefox и просмотреть заголовки ответов для заголовка SetCookie и заголовки запросов, чтобы увидеть, какие файлы cookie отправляет ваш браузер.

person gregmac    schedule 17.01.2012