Вот идея: пользователь переходит на страницу, где он может создать элемент ". На этой странице он может загружать файлы и до отправки формы (работает на Flash для пользователей с поддержкой Flash / Javascript и поддерживается чистый PHP + 5 файлов выводит + iframe для пользователей без Flash / Javascript). Он должен оставаться на той же странице.
Когда пользователь заходит на страницу, я использую этот фрагмент для создания длинного уникального идентификатора:
$random_id = hash('SHA512', (time() * microtime()) . mt_rand(1, 1000) . mt_rand(1, 1000) . uniqid((time() * microtime())));
. Эта переменная хранится в сессии. В любом случае, мне нужно пересоздавать его каждый раз, когда пользователь заходит на эту страницу (потому что он может отменить добавление элемента на этот раз и принять решение о его добавлении через несколько минут). Я также храню его в скрытом вводе во внешнем интерфейсе (чтобы форма Flash / HTML отправляла эту переменную с массивом $_POST
)
Когда пользователь загружает файл с помощью Flash / Javascript ИЛИ, когда он загружает файл с помощью PHP / iframe, я проверяю файлы, переименовываю и перемещаю их во временный каталог с временным именем ($randon_id
).
При отправке формы я использую $random_id
, чтобы найти загруженные файлы и добавить правильный идентификатор элемента в таблицу файлов.
Теперь я столкнулся с довольно большой проблемой. Конечно, я использую валидацию внешнего интерфейса (но это своего рода «игрушка», только для повышения удобства использования), поэтому мне нужно проверить форму с помощью PHP. Иногда случается, что пользователь предоставляет неверные данные (неправильный формат и т. Д.). Когда пользователь нажимает кнопку «Отправить», страница перезагружается. И теперь я пришел со своей проблемой:
При перезагрузке страницы $random_id
изменяется по мере обновления. Таким образом, скрытый ввод в HTML-форме (опять же, он используется в Flash-форме и HTML-форме). Как этого избежать?
Чтобы уточнить: Нет , я не хочу блокировать свой веб-сайт для пользователей без Flash / Javascript. Доступность - это ключ для меня, этот веб-сайт должен работать для всех (с Javascript / Flash и без него и т. Д.).
PS. Я использую каркас KohanaPHP.
С уважением,
Top