Завершение сессий php для отладки - PullRequest
1 голос
/ 10 июня 2010

Это может быть очень легко сделать, но я не смог понять это.

По сути, у меня есть несколько пар веб-приложений, написанных на python и php.Код Python использует сеансы PHP (сгенерированные из приложения PHP, когда пользователь входит в систему), чтобы проверить, вошел ли пользователь в систему или имеет ли разрешение на доступ к данному ресурсу Python.

Мой вопрос заключается в следующем:Самый простой способ принудительно отключить все активные сеансы.Я хотел бы сделать это в целях отладки, чтобы проверить код Python.Я попытался изменить переменную PHP session.max_lifetime, но это все еще не гарантирует, что сеанс закончился и был удален.

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

Есть идеи?

Ответы [ 3 ]

1 голос
/ 10 июня 2010

Только что нашел это по другому вопросу: очистка файлов сеанса php

Вы можете попробовать установить низкое значение gc_maxlifetime, например 0 или 1 (я не пробовал это, нокажется разумным) использовать функцию ini_set ().

http://ar.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

Еще одна попытка - удалить все файлы в папке session.save_path.Конечно, для этого потребуются соответствующие права доступа к файлу, но это может быть лучшим вариантом.

1 голос
/ 10 июня 2010

Я не знаю централизованного способа чистого завершения всех сеансов для всех клиентов.

Чтобы завершить все сеансы, я бы создал файл с определенным именем (например, end.txt) в определенном месте в приложении.

Ваш файл начальной загрузки (или там, где вы инициализируете сеансы) сразу же после начала сеанса проверит, существует ли этот файл; если это так, сделайте session_destroy() и удалите все куки.

При использовании этого метода вам придется удалить файл end.txt вручную.

0 голосов
/ 10 июня 2010

Удаление файла сеанса на сервере не приведет к удалению файла cookie sesison на стороне клиента. Вы можете удалить сессионный cookie, который «убьет» сессию. Или вы можете просто использовать session_unset() для уничтожения стороны сервера сеанса.

Возможно, вам также понадобится использовать session_destroy(), а также сбросить cookie сеанса (для этого посмотрите комментарии session_unset, чтобы узнать, как это сделать).

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