Xwab
Форумыnavigate_nextПрограммирование на PHP

Антифлуд
Сообщения
Максим

Хотелось бы узнать, как лучше сделать запрет на частые сообщения (антифлуд), к примеру минуту

Лучше показать на прикрепленном файле, чтоб понятнее было

03 Янв 2011, 20:17
ofroke

при добавление сравнивай последнее доб. сообщение и сравнивай сколько времени прошло, если меньше 60сек, то выдавай err

03 Янв 2011, 20:19
Sandr

Максим, делай то, что во 2м посте написано + сверяй на похожие сообщения в бд.

03 Янв 2011, 20:26
Максим

ofroke, Да я понял, что нужно сравнивать.

Хотелось бы узнать как это должно быть. Для этого и прикрепил файл, чтоб ''на пальцах показали''.

03 Янв 2011, 20:26
Максим

Sandr, Мне не нужна Б.Д. , мне нужно узнать как это правильно написать, принцип действия. Без ошибок синтаксиса.
Желательно несколько вариантов.

03 Янв 2011, 20:32
ofroke

ты куда запись будешь отправлять?
===
<?php

if (isset($_POST['test'])) {

if (empty($_POST['name']))
echo '<p>Отсутствует <b>Имя</b>!<br /></p>';

elseif(isset($_COOKIE['add']))
echo '<p>В последние 60сек вы уже добавляли сообщение</p>';
else {

setcookie('add', true, time() + 30, '/');
echo '<p>Ваше имя: <b>'.$name.'</b></p>';

}


}
echo '<form action="'.$_SERVER['SCRIPT_NAME'].'" method="post">
<p>Имя : <br />
<input type="text" name="name" /><br /><br />
<input type="submi
t" name="test" value="Go" />
</p></form>';
?>

03 Янв 2011, 20:41
Okula

Максим, вот так:
$time = time() - 60;
// $inf['time'] время последнего сообщения из базы
if($time < $inf['time']) die("Error!!!");

03 Янв 2011, 20:43
Патриот:)

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

03 Янв 2011, 20:46
ofroke

Патриот , сессия удаляется если чел браузер закрыл, и так он обойдет антифлуд)

03 Янв 2011, 20:48
Okula

ofroke, в куки тогда писать можно
Правдо и куки чистеть можно, но на это времени больше уйдёт чем спамить

03 Янв 2011, 20:50
Ответить на тему