2014-12-19 3 views
0

Per http://php.net/manual/en/function.setcookie.php, они предоставляют следующий пример, чтобы удалить куки:Правильное истекают значение для удаления куки

setcookie ("TestCookie", "", time() - 3600); 

Выбранный ответ Remove a cookie рекомендует следующее:

setcookie('Hello', null, -1, '/'); 

Должна ли она быть time()-3600, -1, или что-то еще?

На боковой ноте, является ли значение null или "" предпочтительным?

+2

Любое время до того, как текущее время будет работать. – Barmar

+0

Значение не имеет значения, установив предыдущую дату, поскольку @Barmar сказал, что удалит cookie. –

+0

он должен быть в прошлый раз В КЛИЕНТЕ. если часы клиента выключены, тогда вы все равно будете устанавливать время в будущем THEIR, например. продолжая печенье. Лучший выбор - установить 'time = 1', который должен быть 1970. Если часы пользователя настолько далеки, что слишком плохо для них. –

ответ

0

Попробуйте

if (isset($_COOKIE['TestCookie'])) 
{ 
    // removing the cookie 
    unset($_COOKIE['TestCookie']); 

    // resetting the cookie 
    setcookie('TestCookie', null, -1, '/'); 

    return true; 
} else { 
    return false; 
} 
+0

Это был рекомендованный ответ на сообщение, на которое я ссылался. Обратите внимание, что у него было 7 downvotes, однако причины не были даны. Почему '-1', а не' 1'? Кроме того, почему вы рекомендуете устанавливать значение 'null' вместо' '' '? – user1032531

+1

Почему вы все делаете дважды? – Barmar

+0

@Barmar typos unfortunetly – ehime

0

Поскольку время истечения куки будут проверены на клиентов круглосуточно, лучший вариант:

setcookie('Hello', null, 1, '/'); 

Тогда вы можете убедиться, что он истекает мгновенно.

За исключением случаев, когда часы 00:00:00 1970-01-01: P

+0

Почему '1', а не' 0'? Кроме того, почему 'null', а не' '' '? – user1032531

+0

Это не имеет значения. –

+0

@NelsonGaldemanGraziano Это имеет значение, так как 1 и 0 - времена, разница между 0 и 1 - это жизнь печенья, ака одна секунда. Кроме того, с нулевой и пустой строкой пустая строка является нулевым значением, но не идентична null: http://php.net/manual/en/language.operators.comparison.php – ehime

Смежные вопросы