Для вашего кода, обрабатывающего комментарий и вставляющего его в базу данных, вы должны добавить проверки: (a) посмотреть, прокомментировал ли тот же самый человек за последние X минут, или (b) посмотреть, есть ли аналогичный комментарий.
(a) довольно легко реализовать. Я предполагаю, что вы храните комментарии в своей базе данных со столбцом для user_id
и столбцом для timestamp
. Тогда вы можете просто выполнить запрос, чтобы увидеть, если этот пользователь уже оставил комментарий в срок (давайте установим его на две минуты для этого примера.)
SELECT * FROM `comments` WHERE `user_id`='{$user_id}' AND DATE_SUB(NOW(), INTERVAL 2 MINUTE) < `timestamp`
Если запустить этот запрос и возвращает строку, то вы знаете, что пользователь оставил комментарий менее двух минут назад.
(б) является более трудным, если ничего другого, чем то, что вы на самом деле не определить, что это значит для комментария, чтобы быть «похож». Вы можете проверить сходство в тексте либо с ключевыми словами, либо с помощью функции сравнения строк, такой как Levenshtein. Вы должны следовать той же логике, что и в (a), просто запустите запрос базы данных, чтобы проверить сходство, и при необходимости сообщите об ошибке.
Если вы не найдете строк, соответствующих указанным выше проверкам, вы можете смело вставить комментарий в свою базу данных. В противном случае вы можете сообщить об ошибке пользователю, или же вы хотите обработать его.
Если вы перейдете к более конкретным вопросам, я уверен, что кто-то может помочь вам дальше.
Почему -1? При всей этой информации в вопросе это правильный ответ. – Lasse
Я не делал нисходящего. Но это не ответ, это должен быть комментарий. И у вас есть такая репутация, чтобы поставить комментарий. –
Вопрос был, цитируя: «Мне интересно, есть ли такая вещь в PHP». – Lasse