Сохранять PHP-сессию после закрытия браузера - PullRequest
1 голос
/ 27 марта 2012

Немного предыстории к этому ...

У меня на сайте есть приложение для входа в ASP.NET, и после входа в систему я могу перейти на сторону WordPress (PHP) (все еще в том же домене), сохраняя сеанс. Посмотрите мою ссылку ниже, чтобы узнать, как это работает.

Тем не менее, проблема возникает, если я закрываю свой браузер, тогда я теряю PHP-сессию, несмотря на сохранение сессии ASP.NET . Поэтому я «вышел» на стороне PHP, но все еще «вошел» на стороне .NET.

- Есть ли способ, с помощью моего существующего кода, установить время жизни сессии / куки, чтобы избежать исчезновения сессии / куки при закрытии браузера? -

У меня есть текущий код PHP из моего шаблона <head> здесь: http://pastie.org/private/ndcqgbog34uqld1etozda, который проверяет и сохраняет сеанс.

Я посмотрел этот пример на PHP.net , но запутался, как использовать его в моем решении.

Большое спасибо за любые указатели с этим.

Ответы [ 3 ]

1 голос
/ 27 марта 2012

Есть две вещи, которые вам нужно сделать.

  1. Установить время жизни куки (по умолчанию 0, которое PHP взаимодействует как "Пока браузер не закроется")
  2. Настройка времени жизни сборки мусора сеанса . Это определяет, как долго будут уничтожаться данные сеанса на стороне сервера.

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

1 голос
/ 27 марта 2012

Думаю, вы должны использовать setcookie() с истечением срока действия (см. здесь ).Вы только устанавливаете вещи в сеансе (похоже, они скопированы из файлов cookie, но я не уверен, каков их срок действия).

Вместо этой строки:

$_SESSION[DOT_NET_SESSION][ $tuple['SessionName'] ] =
    $tuple['SessionValue'];

Попробуйте это:

$cookie = array($tuple['SessionName'] => $tuple['SessionValue']);
setcookie(DOT_NET_SESSION, $cookie, time() + 60 * 60 * 24);

Я думаю, это должно установить cookie на один день.

0 голосов
/ 27 марта 2012

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

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

...