2013-05-29 3 views
1

Я создал свою систему входа и выхода в систему, но, похоже, она не работает правильно в некоторых браузерах, таких как хром и firefox. Проблема в том, что браузеры помнят файлы cookie, даже если они предназначены для истечения срока действия сеанса. У кого-нибудь есть решение?Браузер, помнящий куки, даже если не предполагалось

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

Заранее благодарю вас!

EDIT: Прошу прощения, я смутился. Я не отключаю файл cookie вообще, браузер должен уничтожить его, когда он закрыт, но это не так. В этом проблема

+0

Дубликат http://stackoverflow.com/questions/12491756/unset-cookies-php –

ответ

2

Установите дату истечения срока действия в прошлом

// set the expiration date to one hour ago 
setcookie ("cookie", "", time() - 3600); 

См this example из PHP руководств.

EDIT:

Чтобы удалить кук, когда браузер или вкладка закрывается, вы можете использовать яваскрипт OnUnload.

<script> 
    window.onunload=function() 
    { 
     document.cookie = 'cookie =; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 
    } 
</script> 

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

+0

0 в прошлом, но я отредактировал мой вопрос –

+1

@php_nub_qq, 0 Это не совсем значение времени –

+1

@php_nub_qq, см. Мое редактирование. –

1

Чтобы удалить файл cookie, вам нужно установить отрицательное время.

setcookie('cookie', '', time() - 3600); 
+0

0 в прошлом, но я отредактировал мой вопрос –

1

Как PHP Doc говорит:

Если установлено значение 0 или опущен, печенье истекает в конце сессии (когда браузер закрывается)

Это идея PHP, но некоторые браузеры этого не делают. Просто установите отрицательное время, например

setcookie("cookie", "", time() - 10); 

и он работает.

+0

Это то, что я пытаюсь сделать, но оно не истекает. Я отредактировал свой вопрос. Прошу прощения –

+0

и вы закрываете свой браузер? Не только табуляция? Думайте, что это может быть потенциальная ошибка, хотя я не тестировал этот сценарий. – Neysor

+0

Да, я. Печенье остается. –

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