2011-02-02 4 views
0

У меня есть сайт с возможностью «оставаться в системе». Когда эта опция включена, я поставил печенье на один месяц, как так:PHP Cookies не удаляются!

$expire = time()+60*60*24*30; 
setcookie("user_ID", $userid, $expire); 
setcookie("u", $username, $expire); 
etc. 

Тогда у меня есть сценарий выхода из системы, чтобы убить кук, установите значение нулевого значение и дату истекает один час в прошлом.

$expire2 = time()-60*60; 
foreach ($_COOKIE as $c_id => $c_value) 
{ 
    setcookie($c_id, NULL, $expire2); 
} 

Когда я запускаю сценарий выхода из системы, Firebug говорит это:

Set-Cookie идентификатор пользователя = удален; expires = Tue, 02-Feb-2010 16:43:15 GMT u = deleted; expires = Tue, 02-Feb-2010 16:43:15 GMT

Но когда я вернусь на главную или любую другую страницу, я все равно выполнил вход! Единственный раз, когда я устанавливал файл cookie, - это когда я запускаю сценарий входа в систему, поэтому почему они не умрут? Может ли это иметь какое-либо отношение к местному времени за GMT?

+2

Вы используете cookie на основе $ _SESSION для поддержки аутентификации? –

+0

Как работает аутентификация? И вы проверили, что произошло с вашими куки? – Gumbo

ответ

3

Ничего. Как и большинство ошибок, которые я делаю, этот был довольно глупым. Я устанавливал пустые файлы cookie, а мой скрипт выхода находился в другом каталоге, а не в скрипте входа. Я установил их в файлы cookie домена и теперь они работают.