Здраствуйте, у меня есть проверка: if(!preg_match("|^[\d]+$|", $item_id)) exit("Hacking attempt"); при вводе всяких левых символов выводит сообщение "Hacking attempt", как мне создать ещё одно условие, которое будет проверять, сколько раз пользователю вывелось это сообщение, если больше двух, на третий будет блокировать эго на 15 минут с выводом другого сообщения, например: "Вас заблокировали на 15 минут...." За ранние спасибо !
в мануале надыбал подобное для тебя... PHP: <?php session_start(); $tmp = $_GET['tmp']; $try = 3; // Число проб if(!isset($_SESSION['count'])) { $_SESSION['count'] = 0; } if($_SESSION['count']==$try ) { echo $_SERVER['REMOTE_ADDR']; session_destroy(); unset ($_SESSION['count']); // а дальше или в базу... или в плоские файлы... или на тот свет...) } else { if(!preg_match("|^[\d]+$|", $tmp)) { $_SESSION['count']++; echo "Hacking attempt"; } } ?>
Спасибо ребята за быстрий ответ !! А ещё как мне сделать время блокировки 15 мин ? я новенький в этом дели, помогите...
Вообще по уму для этого лучше б базею использовать, где хранить попытки логинов с айпи адресов. все остальные способы типа кукисов бесполезны.
брать ip и время, писать в базу, потом проверять есть ли такой ip, если есть то сколько времени прошло.
ну как сессия просто не будет приниматся пользавателем, и не сможет определить сколько раз он обновил страницу.
куки сохраняются на компе у пользователя и могут работать как в текущем сеансе и при последующих обращениях... а сессия создается только на 1 сеанс т.е. это две друг от друга не зависимые функции
почему тогда когда я отключаю кукексы, ничего не работает ? PHP: <?php session_start(); $item_id = $_GET['item_id']; $try = 3; // Число проб if(!isset($_SESSION['count'])) { $_SESSION['count'] = 0; } if($_SESSION['count']==$try ) { echo $_SERVER['REMOTE_ADDR']; session_destroy(); unset ($_SESSION['count']); } else { if(!preg_match("|^[\d]+$|", $item_id)) { $_SESSION['count']++; echo "Hacking attempt"; } } ?>