Здравствуйте. Делаю чат, продумываю этапы добавления сообщения в БД. Необходимо реализовать защиту от повторной отправки сообщения (защита от флуда) 1. Пользователь отправляет сообщение 2. Вызывается функция add_message(); 3. Идёт проверка отправленного сообщения пользователем с его предыдущим отправленным сообщением , записанным в сессию, если они не равны, то: 3.1 добавляем сообщение в БД 3.2 записываем это сообщение в сессию такой способ защиты от спама будет нормальным или нужно каждый раз дергать БД для того, чтобы выбрать последнее сообщение пользователя и сравнить его с отправленным новым сообщением ? Спасибо
Можно просто время последнего сообщения сохранять куда-угодно и запрещать повторную отправку мессаги. Ну или капчу
Можно сделать как сказал человек выше, но по другому. У тебя есть табличка в базе данных, текст, пользователь и время с датой, выставляешь значение, что если такие сообщения уже были и после них найденых сообщений от того же пользователя, то сообщение не отправляется.
Можно сделать редирект на туже страницу, когда пользователь ввел сообщение, нажал на кнопку отправить сообщение отправляется страница обновляется происходит редирект. При попытке отправить сообщение ему придется еще раз заполнять форму. Но повторно сообщение такое же с таким текстом который был прежний можно отправить. Вообще наверное лучше использовать капчу.