Я читаю некоторые уроки PHP о том, как устанавливать файлы cookie. Я заметил, что файлы cookie успешно установлены на FF4 и IE9, однако он не устанавливается в Chrome (11.0.696.60). Файл PHP был отправлен из XAMPP (localhost).
Я попробовал пример из w3schools:
<?php setcookie("user", "Alex Porter", time()+3600); ?>
И с этого сайта (для локальных окружений):
<?php setcookie("username", "George", false, "/", false); ?>
Заранее спасибо.
Решение отключить cookies для IP-адресов и localhost
было конструктивным решением. См. Также: https://code.google.com/p/chromium/issues/detail?id=56211
Способы решения этой проблемы включают:
/etc/hosts
чтобы использовать 127.0.0.1 localhost.com
). Например, в PHP :
setcookie( $AUTH_COOKIE_NAME, $cookie_value, time() + cookie_expiration(), $BASE_DIRECTORY, null, false, true );
Здесь значение null
указывает, что домен не должен быть установлен.
Примечание: не устанавливать домен запрещает отображение файлов cookie для поддоменов.
Домен должен быть равен NULL.
& Должна быть дана дата истечения срока действия. т.е.
setcookie("username", "George", time() + (20 * 365 * 24 * 60 * 60), "/", NULL);
Похоже, это может быть ошибкой с функцией «Инструменты для разработчиков» Chrome. Все время я пытался установить файл cookie (но не извлекал его), и он работал с другим браузером. Это сработало, если вы доверяете сектору просмотра файлов cookie FF или находите файл cookie для IE. В Chrome я полагался на раздел «Cookies» в разделе «Инструменты для разработчиков» («Инструменты разработчика»> «Ресурсы»> «Печенье»).
Я решил сделать еще один шаг и фактически вывести значение cookie с помощью этого скрипта, найденного в WHT ( опубликовано Natcoweb ):
<?php setcookie('test', 'This is a test', time() + 3600); if(isset($_COOKIE['test'])){ $cookieSet = 'The cookie is ' . $_COOKIE['test']; } else { $cookieSet = 'No cookie has been set'; } ?> <html> <head><title>cookie</title></head> <body> <?php echo $cookieSet; ?> </body> </html>
И он работал на всех браузерах, включая Chrome (я получаю: «The cookie is This is test»)! Однако инспектор cookie Chrome продолжает показывать «У этого сайта нет файлов cookie». Мне также удалось найти список файлов cookie, хранящихся в настройках Chrome (Options> Under Hood> Настройки контента> Все файлы cookie и данные сайта), и, наконец, нашел cookie (больше шагов для проверки, но, по крайней мере, более точно, чем инструменты разработчика)!
Вывод: файлы cookie устанавливаются, но инструменты разработки Chrome не могут его увидеть по какой-то причине.
Вы проверили свою системную дату? $ date И если это старое время, вы должны изменить свое время $ date -s 2007.04.08-22: 46 + 0000
Надеюсь, это поможет. У меня была такая же проблема, и она работала
Я столкнулся с той же проблемой, когда попытался, как показано ниже
setcookie("gb_role",base64_encode($_SESSION["role"]),time()+60*60*24*30);
когда я изменил его ниже
setcookie("gb_role",base64_encode($_SESSION["role"]),time()+2592000);
Я просто отлично работал, разница вместо времени () + 60 * 60 * 24 * 30 Я просто сделал время () + некоторое числовое значение. Я знаю, что это не имеет смысла, но это сработало.
Этот код работает для меня в IE, Chrome и FF
if($_COOKIE['language']==NULL || empty($_COOKIE['language'])) { $dirname = rtrim(dirname($_SERVER['PHP_SELF']), '/').'/'; $expire=time()+31536000; setcookie("language", "English",$expire,"$dirname","mydomain.com",false,false); }