/\exa
Новичок
Алгоритм реализации проверки от автоподбора при авторизации
Добрый день!
Хочу спросить совета. Возникла необходимость сделать провеку, которая-бы исключала автоподбор пароля. Почитал материалы на форуме. Решил реализовать вот таким способом, подскажите корректно это реализованно или нет.
Заранее благодарен.
Добрый день!
Хочу спросить совета. Возникла необходимость сделать провеку, которая-бы исключала автоподбор пароля. Почитал материалы на форуме. Решил реализовать вот таким способом, подскажите корректно это реализованно или нет.
PHP:
//определение переменной для подсчетов неправильного ввода пароля
if(isset($_SESSION["count_error"])!=true){
$_SESSION["count_error"]=0;
}
//проверка существования переменной которая определяет время блокирования авторизации
if(isset($_SESSION["time_error"])==true){
if($_SESSION["time_error"]<time()){
unset($_SESSION["time_error"]);
$_SESSION["count_error"]=0;
}else{
print "блокировка: ".date("i:s",$_SESSION["time_error"]-time())."минут";
}
}else{
if(eregi("^$root_dir",$_SERVER["HTTP_REFERER"])){//откуда пришел
if(isset($_POST["username"]) AND isset($_POST["password"])){
$uname=htmlspecialchars($_POST["username"]);
//запрос к базе и проверка на существования юзеря и правильности пароля
$sql="SELECT userid FROM users WHERE username='".$uname."' AND user_password='".md5($_POST["password"])."'";
$result=mysql_query($sql) or die(mysql_error());
$row=mysql_fetch_array($result);
if(count($row["user_id"])>0){
$_SESSION["status_user"]=1;
$_SESSION["name"]=$uname;
}else{
//начинает работать счетчик неправильных вводов логин-пароль
$_SESSION["count_error"]++;//счетчик неправильных вводов
if($_SESSION["count_error"]>3){
$_SESSION["time_error"]=time()+120;
}
}
header("Location: index.php");
}else{
header("Location: index.php");
}
}else{
header("Location: index.php");
exit;
}
}