удалите файлы сессии через некоторое время из создания

Я сохраняю свои сессии в другом каталоге из каталога временного файла/. сказать /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)

спасибо

7
задан zneak 24 January 2010 в 04:39
поделиться

3 ответа

Благодари, но я думаю, что я мог решить это самостоятельно

. Раствор простую

  if ($handle = opendir('sessions')) {

  foreach (glob("sessions/sess_*") as $filename) {
    if (filemtime($filename) + 400 < time()) {
      @unlink($filename);
    }
  }

  }
4
ответ дан 6 December 2019 в 21:14
поделиться

Вам это не понадобится. Сам PHP реализует механизм сбора мусора для удаления неактуальных сессионных файлов. Он будет намного эффективнее, чем что-либо, что вы могли бы написать сами, используя PHP.

Смотрите опции конфигурации PHP session.gc_* для получения дополнительной информации.

4
ответ дан 6 December 2019 в 21:14
поделиться

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

3
ответ дан 6 December 2019 в 21:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: