Тема: Антифлуд на сайт (WAP/WEB мастеру/Помощь мастерам) Nnm (17 Feb 2016 в 12:39) $flood=mysqli_fetch_array(query(\"SELECT time, id_user FROM `mail` WHERE `id_user` = \'$user[id]\'\")); if($flood[\'time\']+300 > time())$err[]=\'flood\'; khujand (17 Feb 2016 в 13:24) Nnm, это не почту, а при ввода логин и пасс. При 10 раз неправильном ответе, остановить работу скрипта. Nnm (17 Feb 2016 в 14:18) khujand, а какая разница? у гостей тоже есть таблица в воторую можно отправлять запрос при неудачной авто&изации или использовать сессию khujand (17 Feb 2016 в 14:23) Nnm, да я хочу использовать сессию, можешь написать код? [i]Добавлено:[/i] Nnm, чтоб после каждой загрузки страниц, юзер должен подождать 300секунд Olk (17 Feb 2016 в 14:30) Принцип. <? /* ======= registration ====== */ /* -- считаем неудачные попытки -- */ $a = (!isset($_SESSION[\'flood_reg\']) ? 0 : $_SESSION[\'flood_reg\']); $_SESSION[\'flood_reg\'] = $a; // сохраняем в сессию $b = (!isset($_SESSION[\'flood_time\']) ? 0 : $_SESSION[\'flood_time\']); // время /* -- не пустим хацкира -- */ if($a > 9 && (time() - $b) < 300){ /* -- время не прошло -- */ $_SESSION[\'msg\'] = \'Превышен лимит.\'; exit(header(\'Location: /?\')); }else{ unset($_SESSION[\'flood_reg\'], $_SESSION[\'flood_time\']); } // кроем, если время прошло /* ======= auth ====== */ if(<не валид пасс> || <не валид акк>){ /* вывод ошибок и т.д. */ $a++; // +1 к неудачным попыткам if($a > 9) $_SESSION[\'flood_time\'] = time(); // старт времени } ?> Думаю, логика ясна. Nnm (17 Feb 2016 в 14:37) khujand, <? if(isset($_SESSION[\'time_aut\']))$_SESSION[\'time_aut\']=time(); а ставим if($_SESSION[\'time_aut\']>time())die(\'ссистема антифлуд\'); /////Дальше после условия пост запроса if(isset($_POST[\'login\']) && isset($_POST[\'password\'])){/////что то типа того будет после него пойдут ошибкивот туда ставим $_SESSION[\'time_aut\']=time()+300; ?> [i]Добавлено:[/i] а точно неудачные попытки не посчитал khujand (17 Feb 2016 в 15:26) Nnm, а можно так: if (isset($_SESSION[\'login\']) && $_SESSION[\'login\']>$time-300){ Ошибка } Nnm (17 Feb 2016 в 15:45) khujand, ты когда такое в следующий раз написать захочешь убедись чтобы все кто это прочтет были в памперсах khujand (17 Feb 2016 в 15:51) Nnm, значит нельзя? Источник: http://dcms-social.ru/forum/20/44/61189/