2015-02-18 2 views
0

В книге говорится, что постоянное сохранение файлов cookie на клиентской машине до истечения срока ее действия. сеанс cookie исчезнет после закрытия браузера.php session cookie не пропал после закрытия браузера

я попробовал, как:

setcookie("name", "value"); // before any output 

но после закрытия браузера и перезагрузки, он все еще там (от print_r($_COOKIE)).

Я попробовал пару различных браузеров, таких как сафари, хром, firefox, все это похоже на это. только eclipse отличается :)

так, все текущие браузеры не следуют этому «правилу»? или есть какой-то по умолчанию тайм-аут для cookie сеанса, я не знаю?

спасибо.

EDIT:

я проверил поджигатель он сказал:

Название Значение Домен Истекает

Значение имени локальный сессия

+0

вам нужно будет проверить ваши настройки cookie. ВАШ частный php может быть настроен для установки постоянных файлов cookie сеанса. сессионные файлы cookie должны быть временными, bu - это чисто конвенция. ничто не говорит, что кто-то не может устанавливать постоянные файлы cookie. –

+0

Можете ли вы добавить то, что вы наблюдаете в заголовках этой панели сетевых запросов этих браузеров? –

+0

Марку Б: спасибо. в firebug, он сказал «session», так что это означает, что это cookie сеанса. то проблема в том, когда истечет «сеансовый cookie» :) – totally

ответ

0

Проверьте вашу PHP settings для имени сеанса печенья, домен и путь, и отключите cookie, используя те же значения, что и setcooki e(). Все они могут быть прочитаны с помощью ini_get() и переданы переменным.

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

0

То, что вы установили, не является файлом сеанса. После того, как страница загрузится в браузере, перейдите к файлу cookie, установленному с вашего сервера (localhost, если это локальная машина), вы увидите файл cookie SESS_ID, который задается сервером, и он запускается при закрытии браузера.

0

Что вы на самом деле пытаетесь установить persistent cookie ..A session cookie или просто session можно просто установить, начав сеанс или сохраняя значение в сеансе, например $_SESSION['name']=$value.

Что вы делаете, это persistent cookie, он не истечет, даже если браузер закрыт. Он истекает только после истечения времени, установленного в cookie.

setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); Как он установит куки информацию для 1 day..even если браузер он закрыт ..

Вы можете установить время и куки информацию в соответствии с вашими потребностями ... `

0

Это потому, что вы 'установка cookie.

Сессии - это не файлы cookie. Печенье - это не сеансы.

http://www.tuxradar.com/practicalphp/10/1/0

Цитируется с первой страницы:

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

И сеансов, через страницу на sessions:

Важно также отметить, что сеансы только в прошлом, пока пользователь закрывает браузер, в то время как печенье может быть настроен длиться дольше.

0

Спасибо всем. Это моя проблема. Я работаю над macbook, я подумал нажать на красный крест, закроет браузер. но хотя браузер ушел. на самой верхней части экрана, все еще отображается панель меню сафари. я должен нажать сафари и выйти из него.

сейчас, все мои сеансовые файлы cookie исчезли после закрытия браузера :)

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