Я написал скрипт авторизации, нужно экспертное мнение ошибки, недочеты, замечания. Что нужно для надежной авторизации?. Если у кого есть готовый рабочий скрипт прошу поделиться
<?php
// Авторизация
if(isset($_POST['sendauth'])){
if(empty($_POST['login']) || empty($_POST['password'])){
header("Location: index.php");
exit();
} else {
$login=trim($_POST['login']);
$password=trim($_POST['password']);
// Проверка правильности ввода данных
if(!preg_match("/([a-z0-9а-я_\.\-])@([a-z0-9_\.\-]{1,20})\.([a-z]{2,6})/i", $login) || !preg_match("/[0-9a-zA-Zа-яА-Я\\.-]/", $password)) {
header("Location: index.php");
exit();
}
// максимальное количество символов логина и пароля 20
if(strlen($login)<3 or strlen($login)>30 || strlen($password)<6 or strlen($password)>30) {
header("Location: index.php");
exit();
// exit("Количество символов от 6 до 30");
}
// Включаем поддержку UTF-8 в настройках сервера
ini_set("mbstring.internal_encoding", 'UTF-8');
// Здесь проводим форматирование строк
$login=mb_strtolower($login);
$password=md5(md5($password));
// здесь заносим данные пользователя в сесии
require('data_user.php');
data_user($login,$password);
}
}
function data_user($login,$password){
// SQL Запрос поиска по базе данных
$query=sprintf("SELECT * FROM table WHERE login=%s AND passw=%s LIMIT 1", quote_smart($login), quote_smart($password));
$result=mysql_query($query);
if(!$result) exit("Ошибка выполнения запроса - ".mysql_error());
if(mysql_num_rows($result))
{
$datauser=mysql_fetch_assoc($result);
// Вставка данных в переменные сессий
$_SESSION['name']=$datauser['name'];
mysql_free_result($result);
// Установка времени жизни сессии
time_out();
} else { exit("Логина нету"); }
}
?>
|