2016-01-08 3 views
0

С нескольких недель я замечаю, что мой сайт больше не сохраняет cookie.Cookie set, но исчезает

Если я обновить несколько раз эту страницу:

<?php 
print_r($_COOKIE); 
setcookie('Test', 'Blah', time() + 3600 * 24 * 365, '/'); 
print_r($_COOKIE); 
?> 

печенье должно быть там! Но я получаю:

Array() Array()

Есть ли общий способ отладки это?

Примечание: это не дубликат от this question, его ответы не помогли.

+0

Другие ответы на вопросы не решают эту проблему. – Basj

+0

Откройте сетевые инструменты в своем браузере. Убедитесь, что заголовки ответов для файла cookie. Это может быть ваш браузер, это может быть предыдущий неверный заголовок. Очень сложно отлаживать удалённо – Steve

+0

Спасибо @Steve. Можете ли вы показать, где/на что смотреть? Может быть, скриншот? (firefox или chrome)? – Basj

ответ

0

Set, где вы хотите печенье, чтобы быть доступным,

setcookie('Test', 'Blah', time() + 3600 * 24 * 365 * 10, "/"); 

/ означает, что он доступен везде на домене.

Путь

Путь на сервере, в котором куки будут доступны на. Если установлено значение '/', файл cookie будет доступен во всем домене. Если установлено значение '/ foo /', cookie будет доступен только в каталоге/foo/и всех подкаталогах, таких как/foo/bar/домена. Значение по умолчанию - это текущий каталог, в котором установлен файл cookie.

Попробуйте обновить страницу, поскольку она не отображается до следующего запроса.

Чтение Материал

setcookie

2

$_COOKIE содержит куки, которые браузер посланные в текущего запроса.

setcookie направляет инструкцию в ответ, в котором говорится, что браузер хранит файл cookie.

Браузер не отправит этот файл cookie на сервер до следующего.

Если вы хотите проверить, если куки установлен вы можете:

  • Посмотрите на заголовки ответа в инструментах разработчика браузера
  • Добавьте JavaScript в тело ответа, который будет рассматривать document.cookie
  • Создайте новый HTTP-запрос и используйте код на стороне сервера, чтобы узнать, содержит ли он файл cookie
+0

Хорошо, но тогда, если я обновляю страницу, cookie должен быть показан, правильно? Это не. – Basj

0

старайтесь не сохранять его в течение 10 лет.1 год уже достаточно i belive

setcookie('Test', 'Blah', time() + 3600 * 24 * 365, "/"); 
+0

Это ничего не изменило. – Basj