/** * вызываем метод проверки пользователя на предмет регистрации */ private function verify() { //Получаем IP из массива SERVER $ip = $_SERVER['REMOTE_ADDR']; //$ip=77; $ip = intval(ip2long($ip)); /*проверяем массивы POST[] и GET[]*/ if (isset($_POST['user']) & isset($_POST['password']) & !empty($_POST['user']) & !empty($_POST['password'])) { /*Проверяем содержимое массива POST[] на предмет наличия непозволительных символов*/ $name = htmlspecialchars($_POST['user']); $name = trim($name); $password = htmlspecialchars($_POST['password']); $pasword = trim($password); $db = new DB_connect(); /*Проверяем есть ли бан на текущее IP*/ $bun = $db->permit($ip); if ($bun == 'false') { /*если бан то сравниваем текущее время со времененем зафиксированным * в базе если время в базе больше чем текущее то бан все еще работает * а если наоборот то бан закончился и можно продолжить попытки входа */ $endTime = $db->getEndTime($ip); //получаем время бана $endTime = strtotime($endTime); $now = @time(); //текущее время $res = $endTime - $now; //разница if ($res < 0) { //бан можно прекращать $db->license($ip); //снимаем бан header("Location:index.php"); } else { header("Location:view/bun.php"); } } $is_us = $db->is_user($name, $password); /*если такой пользлователь в базе есть переходим на страницу админа*/ if ($is_us) { require 'view/secret_page.php'; return true; } else { if ($bun != 'false') { /*Если входные данные не верны то занести IP в базу и начать подсчитвать * попытки войти в админку по данному IP */ //считаем попытки $attempt = $db->num_attempt($ip); /*если попыток больше 5 то на 3 минуты баним IP*/ if ($attempt > 5) { /*Передаем false в таблицу counter и с этого момента ip не проходит в базу * Фиксирум время начала бана в базе данных*/ $db->bun($ip); // передаем false $db->setEndTime($ip); //запускаем время бана header("Location:view/bun.php"); } ob_start(); $msg = 'Неверный логин или пароль'; require 'view/message.php'; $message = ob_get_contents(); require 'view/login_page.php'; return false; } } /*Если массив POST[] пустой то снова загрузить форму с предупреждающим сообщением */ } else { ob_start(); $msg = 'Для входа в админку заполните форму.Поля не должны быть пустыми'; require 'view/message.php'; $message = ob_get_contents(); ob_end_flush(); require 'view/login_page.php'; } }