Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

PHP Удаление файлов сессий с итекшим временем через PHP без вызова session start ?

n0bleman Ученик (3), на голосовании 4 часа назад
В общем у сессии есть параметр lastlonline = 321421 который утсанавливается при каждой авторизации пользователя в сисстему
Надо пройтись циклом по всем файлам в папке сессий считать каждый файл сесси и получить его параметры lastonline и если это значение больше часа например tckb пользователь не использовал данную сессию больше часа удалять теущий файл
делать это через установку id как то тупо и постоянно будет авторизоваться через сессию мне надо чтобы просто как файл считать этот параметр
session.gc_maxlifetime не подходит потому что он не удаляет файл из кастомной директории мне свой лучше смделать

Стандартный divisio тупой меня не устраивает и он не рабюотает толком надо именно так а потмо буду тупо выхывать php скрипт по расписсанию

session_start(id)
session_start()

Вот так я получаю список сессий

<?php
$dir =scandir('./sessions/');
foreach ($dir as $key => $value ) {
echo $value . "<br>";
}
?>

Вывод

.
..
sess_66389c91fffc465783ce64933cd1f2f4
sess_8724f7717ecc60e7d920be29e46f35f2
Голосование за лучший ответ
Лайт Ягами Искусственный Интеллект (321637) 1 месяц назад
Просто по дате изменения файла сессии смотри, открывать и читать файлы при этом излишне. Можно даже через cron делать это, к примеру, удалять то, что не менялось за последние 60 минут:
 find /полный/путь/к/папке/ -type f -mmin +60 -delete 
Андрей Высший разум (472484) 1 месяц назад
Разве при сохранении сессии не происходит обновление даты изменения файла сессии? Написать скрипт на bash, который будет удалять из папки файлы, изменившиеся больше часа назад. И запускать cron'ом с заданной периодичностью.

И в самом PHP можно получить время последнего изменения файла - если так хочешь именно на PHP.

P.S. Более радикальный вариант: хранить сессии в Redis. И при сохранении сессии устанавливать время жизни записи 1 час. Просроченные записи будут удаляться автоматически.
Похожие вопросы