Я разрабатываю приложение PHP-MySQL, которое позволяет зарегистрированным пользователям вводить текстовые комментарии. Проблема:PHP очистить кеш браузера, чтобы избежать повторной отправки данных формы после обновления
- пользователя входа в веб-сайт - ХОРОШО
- Пользователь представлен форме представить текст комментария - ХОРОШО
- Пользователь вводит текст комментария и представляет - ХОРОШО
- У меня есть рутинный, который дезинфицирует комментарий & сохраните его в MySQL (с идентификатором пользователя, textcomment, datetime stamp) & откройте пользователя, чтобы его комментарий был введен - OKAY
- Пользователь решает обновить браузер - вводится двойной комментарий - BAD!
Я думал 3 варианта:
- ВАРИАНТ 1: Процедура, которая проверяет: последний раз отвечал пользователь комментарий, и если да, то проверить, если это дубликат. Если дубликат, то отобразите сообщение об ошибке.
- ВАРИАНТ 2: Обычная процедура, которая не позволяет пользователю отправлять сообщения слишком быстро. Таким образом, в основном не допускаются публикации комментариев в течение 1 минуты или около того. Поэтому, если браузер обновлен, комментарий будет проигнорирован.
- ВАРИАНТ 3: манипулировать кешем браузера, чтобы очистить его содержимое, поэтому при обновлении дубликат не будет введен.
Теперь, в контексте моего приложения, мои проблемы с OPTION 1 и OPTION 2 - это производительность PHP-MySQL, поскольку у меня уже есть различные запросы на той же странице, которые выталкивают/получают данные из баз данных. Поэтому OPTION 3 может по-разному затронуть проблему.
Вопросы: если я иду для ВАРИАНТА 3, это можно считать лучшей практикой? смысл очистки кеша браузера является лучшим наиболее эффективным решением? Я читал, что есть последствия? ваши мысли оценены!
Извините мое невежество что вы подразумеваете под перенаправлением? – Jorge
@Jorge Я обновил свой ответ. –
Редирект: он отправляет HTTP-статус 302. Ознакомьтесь с документацией PHP для метода заголовка: http://php.net/manual/en/function.header.php - выполните поиск по «Location:» – Thilo