Я написал скрипт авторизации, нужно экспертное мнение ошибки, недочеты, замечания. Что нужно для надежной авторизации?. Если у кого есть готовый рабочий скрипт прошу поделиться
<?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("Логина нету"); }
}
?>
1. ruslanaxti - 15 Октября, 2014 - 14:53:34 - перейти к сообщению
2. 3d_killer - 15 Октября, 2014 - 16:47:24 - перейти к сообщению
если бы ты оформил читаемо тогда может кто и глянул...
(Добавление)
могу сказать сразу что МД5 уже особо не актуально в пароле, да и пароль мало разрешенных символов, остальное не смотрел
(Добавление)
могу сказать сразу что МД5 уже особо не актуально в пароле, да и пароль мало разрешенных символов, остальное не смотрел
3. esterio - 15 Октября, 2014 - 18:10:16 - перейти к сообщению
вопрос на подумать: зачем запрещать символи в пароле? если они потом и так хешированние будут