- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть некая задача. Есть на сервере папка с временными файлами temp_dir, в ней помещаются файлы пользователя на некоторое время, например пользователь загрузил что-то в форму, прикрепленные файлы до подтверждения сохранения скапливаются в папке temp_dir/current_session_id (под-папка с именем равным текущему идентификатору сессии). И вот момент, когда пользователь прикрепил что-то, эти файлы попали в temp_dir/current_session_id и тут погас свет и вырубился комп, а как включился - то пользователь забыл про сайт и больше туда не заходит, а мусор остался в temp_dir. Чтобы удалить этот мусор нужно время от времени проверять существование конкретной сессии с указанным id, если таковой не существует - то удалять папку в temp_dir с нужным именем. Подобным образом работает механизм сборщика мусора (устаревших сессий) в PHP. Собственно вопрос, как проверить существование конкретной сессии с указанным id?
Сессия создается на определенное время, соответственно и проверяется также - если старше удаляется.
siv1987, я знаю. так как мне проверить, существует ли еще файл с конкретным sessionId на сервере, или нет ?
Выключился комп, сессия осталась не удалилось, она устарела - удаляем. Или я что-то не так понял?
Если на некоторое время, то чистим раз в неделю через крон записи, которым больше 7-ми дней.
siv1987,
Выключился комп - сессия уже обрубилась, но файл сессии (хранится например: php/tmp/sess_3pqoe4fobjgj3b3omc4153dd10) - еще жив, этот файл удалит через время сборщик мусора в PHP, все что после "sess_" в имени файла - это id сессии запущенной для конкретного браузера.
Что происходит с временными файлами пользователя, в нашей temp_dir, скрипт сканирует папки равные id сессий, сверяет их с существованием файлов в php/tmp/, и тогда смотрит удалять под-папку из tem_dir или нет.
---------- Добавлено 07.05.2014 в 23:26 ----------
Если на некоторое время, то чистим раз в неделю через крон записи, которым больше 7-ми дней.
хочу обойтись без cron и БД (типа хранить и сравнивать время последней активности)
этот файл удалит через время сборщик мусора в PHP
Почему? Потому что сессия устарела. Удаляйте и вы временные файлы. Они не могут быть временными больше определенного времени. Если нет - то собственно вы себе костыль в ответе написали.
Ну это программирование. Это же не по воле божей это делается.
Посадите тогда на пользователей эту функцию, каждый зашедший запускает механизм. Там уже как хотите сделайте. Пусть они проверяют, но нафига эти костыли не понятно
Может просто можно проверять существование файла session_save_path()."sess_".$folderName. В данном случае folderName - имя подпапки которое соответствует id когдато запущенной сессии.. надо поробовать
имя подпапки которое соответствует id когдато запущенной сессии.
А откуда у вас id когда-то запущенной мертвой сессии? Скан папки? В чем смысл? Тот же аналог крона, да только с костылями и какой-то проверки где у php и доступа скорее всего и не будет.