2013-05-09 8 views
2

Очень новичок вопрос, но голый со мной ...PHP: Удалено против Очистка куки

Что касается создания печенья с PHP, в чем разница между использованием параметра «истекает» из «SetCookie» и просто настроить cookie на ""? Другими словами, у меня есть файл cookie, который собирает информацию, в какой-то момент я возьму всю эту информацию и отправлю ее, и после этого я хочу по существу уничтожить cookie. Поскольку (с моей точки зрения) файлы cookie хранятся на стороне клиента, мои параметры Expire или «». Из того, что я читал, «Expire» просто устанавливает cookie в 0, так же как и в отношении значений; int 0 или пустую строку?

Также задан вопрос о распространении оригинальных вопросов. AKA, если у меня возник вопрос, который я опубликовал, а затем хотел задать аналогичный вопрос, отредактируйте исходный вопрос и добавьте этот новый раздел или запустите новый вопрос (например, я сделал здесь)?

ответ

0

Установка значения в значение "" просто сделает именно это! Файл cookie по-прежнему действителен, но имеет пустое значение. Это плохая практика, так как она открывает дверь для вредоносного кода, чтобы позже использовать этот файл cookie. Истекший файл cookie установит свое время истечения срока в прошлом, сделав файл cookie непригодным для использования в браузере клиента.

Cookies «уничтожены», когда время истечения срока действия установлено в какой-то момент в прошлом. В этот момент браузер клиента игнорирует их.

2

Когда вы устанавливаете файл cookie, он сохраняется в клиентских браузерах. Если вы устанавливаете параметр expire, чем cookie истекает (удаляется) после заданного времени с клиентского компьютера, и если вы установите cookie на 0, то cookie останется в браузер клиента со значением 0.

0

важной частью является, что печенье не истечет, даже если запрос HTTP на сервер не создаются (например, нет щелчка), но установка вручную его пустым происходит только во время выполнения запроса.

Это означает, что

  • срок действия которого истекает печенье будет просто «исчезают» между запросами
  • Истечение происходит на стороне клиента, то есть вредоносный или ошибочный клиент будет выполнять истечение неправильно (или не совсем)

Итак, вы говорите о разном распределении ответственности между сервером и клиентом.

0

Не уверен, что вы подразумеваете под термином «Expire», но это должно быть int, если оно относится к третьему параметру setcookie.

Это удалит куки, когда браузер закрыт

setcookie($cookie_name, $value, 0, {$path}); 

То же setcookie($cookie_name, $value);

Это будет держать печенье, пока вы не хотите, чтобы остаться:

$keep_cookie = 60*10; //10 minutes 
setcookie($cookie_name, $value, time()+$keep_cookie, {$path});