Понимание тайм-аута сессии (php) - PullRequest
1 голос
/ 18 октября 2010

Мне нужно удалить старые пользовательские данные в БД, если время сеанса пользователя истекло .

Как мне решить эту проблему с помощью PHP?

Ответы [ 3 ]

1 голос
/ 18 октября 2010

Вы можете установить время ожидания сеанса.скажем, 30 минут.

sesssion_gc_maxlifetime

Вы можете проверить время входа пользователя в систему.

Но если вы хотите удалить данные, лучше сохранить сеанс в БД или вминимум

сохранить статус, вход в систему или выход из системы, а также время входа и выхода из системы в БД

Это будет безопасно

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

установка задания cron на 30 минут или в другое время

1 голос
/ 18 октября 2010

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

Сеанс по умолчанию длится до закрытия браузера, поэтому вы не можете знать, сколько секунд сеанс активен.Даже когда сеанс закрыт, сеанс не будет удален, пока сборщик мусора не удалит его.

0 голосов
/ 18 октября 2010

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

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