@ex3xeng

Как реализуется задержка между добавлением комментариев?

Доброго времени суток! Подскажите пожалуйста как реализовать задержку между отправлением комментариев на сайте, подобная штука реализована в Wordpress, пожалуйста не гоните копошится в якобы открытом коде WP я пытался, но уровень моих знаний не позволил мне найти искомый код так как там уж очень длинная цепь.

Суть такова пользователь оставляет комментарий на сайте и тут же пытается оставить другой и в WP говорит подождите 15 секунд прежде чем оставить следующий комментарий, а так же есть оставить идентичный комментарий то он выдаст ошибку о дубликате.

На счет дубликата есть лишь мысль залезть в БД и проверить нет ли там идентичного комментария для этой записи (Без тревоги БД никак?)
на счет интервала тут не совсем уж ясно, если оставить пометку в сессиях или куках так они легло удаляются, как быть?
  • Вопрос задан
  • 498 просмотров
Пригласить эксперта
Ответы на вопрос 6
unitby
@unitby
ставьте отметку в сессии, для умников проверяйте еще в базе (в сессии нуна чтоб меньше нагрузка на базу была)
Ответ написан
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Можно в memcache хранить время последнего комментария пользователя или с ip-адреса.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
hash последнего сообщения помещаете в сессию PHP вместе с timestamp.
при попытке оставить еще - проверяете эти два параметра.
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Для гостей только 2 варианта, кука/сессия или IP. Ни то ни другое 100% гарантии не даст. Ип меняется, куку можно стереть. Короче это защита от "честных" гостей, кто захочет обойти, тот обойдет. Только авторизация спасает с высокой долей вероятности.
Ответ написан
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
https://wordpress.org/support/topic/take-off-flood... самый простой вариант.
Ответ написан
Комментировать
Aziztwelve
@Aziztwelve
web-разработчик
Add this to your theme’s functions.php:

add_filter('comment_flood_filter', '__return_false');
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы