Я использую этот код для установки печенья, а затем увидеть, если они существуют
setcookie("token", "value", time()+60*60*24*100, "/");
setcookie("secret", "value", time()+60*60*24*100, "/");
setcookie("key", "value", time()+60*60*24*100, "/");
if (!isset($_COOKIE['token']) || !isset($_COOKIE['secret']) || !isset($_COOKIE['key'])) {
// do something because one of the cookies were not set
}
Даже если все три из печенья были установлены в моем браузере, он по-прежнему работает if()
заявления. Через процесс устранения я обнаружил, что средний файл cookie !isset($_COOKIE['secret'])
, по-видимому, вызывает оператор if()
, хотя cookie secret
был установлен в моем браузере. Сценарий говорит, что он не был установлен, когда я смотрю на свой браузер, и он был установлен. Можете ли вы подумать о какой-либо причине, почему php говорит, что он не был установлен?
Ваш код работает для меня. блок выполняется при первом посещении, поскольку $ _COOKIE еще не заполнен вашими значениями из setCookie. при последующих вызовах блок больше не выполняется. у вас есть, случайно, установлен блокиратор файлов cookie? – Basti
Какой инструмент вы используете, чтобы определить, существует ли этот файл cookie? Firebug? Кажется довольно странным ... –