PHP Cookie со своим собственным разумом

#php #cookies

#php #файлы cookie

Вопрос:

Хорошо, допустим, мы приводим пример:

 <?php
$hello = "no";
if ($hello == "yes"){
    setcookie("hello", '1', time()   14400, '/', false, false, false);
    echo "hey";
}else{
    echo "no";
}
?>
  

Таким образом, приведенный выше код должен отражать «нет» на странице и НЕ устанавливать cookie.

Он повторяет no и устанавливает cookie.

Как может быть установлен файл cookie без повторения hey?

Да, мы удаляем cookie из нашего браузера перед повторным запуском страницы и устанавливаем его каждый раз.

У кого-нибудь еще было что-то подобное раньше? Это сводит меня с ума. В операторах if нет ничего плохого. Файл cookie не должен быть установлен, но это так?

Комментарии:

1. Попробуйте очистить ваши файлы cookie в вашем браузере. Возможно, у вас установлен файл cookie из предыдущей версии вашей программы.

2. Никто не думает, что вы глупы, но когда возникают «невозможные» ситуации, подобные этой, разумно подвергать сомнению все , чтобы уменьшить дергание за волосы. Как вы проверяете, установлен ли файл cookie? Можете ли вы воспроизвести поведение с точным кодом, который вы опубликовали ?

3. Я проверяю его, вручную заходя в свой браузер и находя файл cookie. Он устанавливается каждый раз при загрузке страницы, и этого не должно быть! Я ВСЕ проверил, и все правильно.. Я понятия не имею, почему cookie устанавливается, этого просто не должно быть … если cookie устанавливается, почему он не повторяет hey !??

Ответ №1:

Перед тестированием отключите cookie и убедитесь, что вы установили разумный срок действия.

Ответ №2:

Cookie не устанавливается этим кодом. Однако, возможно, он был установлен ранее и сохранен в вашем браузере. Используйте режим конфиденциальности вашего браузера, чтобы запросить сайт без файлов cookie, или настройки cookie / разработчика, чтобы удалить все существующие файлы cookie.

Другой альтернативой, чтобы узнать, что происходит на самом деле, является curl:

 $ curl -i http://phihag.de/2011/so/cookie.php
HTTP/1.1 200 OK
Date: Fri, 14 Oct 2011 16:13:32 GMT
Server: Apache
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
Content-Language: de

no
$ curl -i http://phihag.de/2011/so/cookie.php?givemecookie=true
HTTP/1.1 200 OK
Date: Fri, 14 Oct 2011 16:13:41 GMT
Server: Apache
Set-Cookie: hello=1; expires=Fri, 14-Oct-2011 20:13:41 GMT; path=/
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
Content-Language: de

hey
  

Убедитесь, что вы редактируете правильный код (например, добавляя echo "world"; к нему и наблюдая за результатом). Если это не поможет, вы действительно должны дать нам URL, который демонстрирует это загадочное поведение.