[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Временное хранение пользовательских файлов
eXaM
Уже создавал похожую тему, однако в этот раз задача чуть сложнее: нужно дать пользователям (неавторизованным причем) добавлять материалы, которые проходят премодерацию. При этом у пользователя должна быть возможность загрузки фото на псевдо-AJAX. То есть для каждого загружающего нужно создать временную папку, где будут находиться загруженные, но еще не использованные фото. Например, если человек загрузил картинок, а форму не отправил. Понятно, что чистить такие папки можно через cron или при помощи кнопки в админке, но есть три вопроса: как назвать временную папку, где хранить данные о том, когда она была создана (чтобы чистить старые временные папки) и как соотнести пользователя и папку.
Я вижу процесс примерно так:
1) Пользователь заходит на страницу с формой и получает себе в куки/сессию уникальный идентификатор (обычный str_shuffle() должен подойти, я полагаю).
2) При загрузке картинки создается папка, название которой - идентификатор из первого пункта, в таблицу БД заносится этот идентификатор и дата-время последнего изменения.
3) При отправке формы берется идентификатор из сессии/кук, создается соответствующая запись в таблице для премодерации и загруженные файлы отправляются, куда следует. Тоже для премодерации.

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

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.