Я сохраняю свои сессии в другом каталоге из каталога временного файла/. сказать /session
каталог. (использование session_save_path("session")
)
также, существует код для уничтожения сессии после 10 менуэтов от создания и выхода из системы.
но я упомянул, что, если пользователь входит в систему и например закрыл свой компьютер, мой журнал и сессия уничтожают дозы кода, не выполненные, таким образом, файл сессии останется в каталоге сессии.
Я хотел знать, существует способ удалить файлы сессии в /session
через некоторое время от создания?
Я использовал этот код для него
if ($handle = opendir('sessions')) {
while (false !== ($file = readdir($handle))) {
if (filectime($file)< (time()-600)) { // 600 = 10*60
unlink($file);
}
}
}
но, не работа, я думаю, что это не могло получить время создания filectime($file)
спасибо
Благодари, но я думаю, что я мог решить это самостоятельно
. Раствор простую
if ($handle = opendir('sessions')) {
foreach (glob("sessions/sess_*") as $filename) {
if (filemtime($filename) + 400 < time()) {
@unlink($filename);
}
}
}
Вам это не понадобится. Сам PHP реализует механизм сбора мусора для удаления неактуальных сессионных файлов. Он будет намного эффективнее, чем что-либо, что вы могли бы написать сами, используя PHP.
Смотрите опции конфигурации PHP session.gc_* для получения дополнительной информации.
Я сделал это раньше с работой Cron, которая вошла и удалена файлов сеансов старше X (для Некоторые причина автоматической очистки PHP не выполняли работу). К сожалению, это, вероятно, не вариант, который вы бы имели, если бы это на управляемом хосте, который не дает вам возможность настроить рабочие места CRON.