Cookie не сбрасывается в PHP - PullRequest
1 голос
/ 08 октября 2011

Я новичок в печенье. Я создал пользовательский php-класс для входа в систему, который использует файл cookie для хранения уникального ключа MD5, чтобы запомнить пользователя, который вошел в систему. Однако файл cookie не сбрасывается при выходе пользователя из системы. Я создал функцию из кода, обнаруженного при переполнении стека, для очистки файлов cookie при выходе из системы.

static public function clearCookies() 
{
    $past = time() - 3600;
    foreach ( $_COOKIE as $key => $value )
    {
            $value = '';
        setcookie( $key, $value, $past );
        setcookie( $key, $value, $past, '/' );
    }
}

Однако cookie все еще не очищается.

Это строка кода, которая устанавливает cookie

setcookie("auth_key", $authKey, time() + 60 * 60 * 24 * 7);

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 09 октября 2011

Вот решение, которое сработало.

Я изменил

setcookie("auth_key", $authKey, time() + 60 * 60 * 24 * 7);

до

setcookie("auth_key", $authKey, time() + 60 * 60 * 24 * 7, '/');

Кажется, что cookie не сбрасывался, потому что URL, из которого он был сброшен, отличался от URL, в котором он был установлен. После добавления '/' его можно было сбросить с нового URL.

1 голос
/ 08 октября 2011

Попробуйте добавить

static public function clearCookies() 
{
    $past = time() - 3600;
    foreach ( $_COOKIE as $key => $value )
    {
            $value = '';
        setcookie( $key, $value, $past );
        setcookie( $key, $value, $past, '/' );
        unset($_COOKIE[$key]);
    }
}

Вы должны заметить, что измененные куки доступны для чтения ПОСЛЕ отправки их клиенту (если вы не устанавливаете их вручную через $ _COOKIE), поэтому следующее обновление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...