Сессии удаление...

Zahar

Новичок
Сессии удаление...

Мне нужно удалить файлы после того как срок хранения сессии истечет (пользователь сам не отлогиневается) файлы имена фалов индифекаторы сессий.

Я узнал что как-то можно настроить php чтобы он при удалении сессий срок действия которых истек может чистить и другую дерикторию с такими же названиями файлов что и сессии.

КАК ЭТО СДЕЛАТЬ.?
 

Ямерт

The Old One
Zahar ты сам-то понял что написал? Думаю, что никто другой точно не понял.
 

Фанат

oncle terrible
Команда форума
Zahar
не надо ничего настраивать.
Все уже настроено до нас.
 

IntenT

SkyDiver
кажется товаришь создает временные файлы самостоятельно, а имена этих файлов совпадают с PHPSESSID, но лежат не в session.save_path.

Zahar
Так?

это кстати что еще такое?
(индийские серуны???)
 

Zahar

Новичок
Автор оригинала: IntenT
кажется товаришь создает временные файлы самостоятельно, а имена этих файлов совпадают с PHPSESSID, но лежат не в session.save_path.

Zahar
Так?

Да иммено так. Только я создаю директории название, которых совпадают с PHPSESSID. Затем туда аплоядяться файлы этого пользователя, но если он не отлогиневается самостоятельно директория с файлами остаётся.
Можно ли без использования cron заставить php убивать эти директории как он убивает и сессии, срок которых истек.


это кстати что еще такое?
(индийские серуны???)
 

IntenT

SkyDiver
Zahar
Тогда удаляй файлы и директории самостоятельно.
ЧТобы не нагружать скрипт - вынеси сборку мусора отдельным скриптом, который запускай по крону.
Удаляй те папки и файлы в них, для которых время последнего доступа меньше чем текущее время минус время жизни сессии
 

crocodile2u

http://vbolshov.org.ru
Intent:

Одна сессия может длиться дольше, чем время жизни сессии: допустим, сессия живет 30 минут, я захожу на сайт, загружаю файл в эту временную директорию, затем через каждые 29 минут обновляю страницу, и моя сессия не убивается, а с временной директорией я больше не работаю, то есть разница между временем последнего изменения директории и текущим временем будет горзадо больше нежели время жизни сессии. И что же - мои файлы, получается, благополучно поудаляются?

Вопрос к Zahar:

Может быть, есть лучшее решение твоей проблемы? Объясни, зачем ты, собсно, создаешь эти директории?
 

IntenT

SkyDiver
crocodile2u
читать внимательно что я написал и не пороть хню.
 

crocodile2u

http://vbolshov.org.ru
Перечитал.

Я понял твои слова так:
чел записывает в директорию с именем сессионного файла что-то. Затем скриптом, кот. запускается по крону мы проверяем время последнего доступа в
эту директорию. Директории, для кот. разница между этим временем и текущим, меньше времени жизни сессии, удаляются.

Но - я могу сидеть в одной сессии хоть два дня! А в эту самую директорию что-нибудь положить только один раз.

Поясни по поводу 'хни'. Если ты мне докажешь, что я не прав, я с радостью с тобой соглашусь.
 

IntenT

SkyDiver
crocodile2u
Ок, поясняю.. хотя мне это казалось очевидным.

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

crocodile2u

http://vbolshov.org.ru
На мой взгляд, это немаловажная поправка!
Мысль о ней, конечно, сразу же приходит в голову, как только задумаешься над таким алгоритмом удаления мусора, и все же - БЕЗ нее идея полностью нежизнеспособна. Озвучь ты эту иысль сразу - и не было бы вопросов :).
 
Сверху