2010-06-10 2 views
1

Это может быть очень легко сделать, но я не смог понять это.Завершение сеансов php для целей отладки

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

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

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

Есть идеи?

ответ

1

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

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

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

С помощью этого метода вам необходимо будет удалить файл end.txt вручную.

0

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

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

1

Просто нашел это на другой вопрос: cleanup php session files

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

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

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

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