Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Скрипт авторизации
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Скрипт авторизации

Страниц (1): [1]
 

1. ruslanaxti - 15 Октября, 2014 - 14:53:34 - перейти к сообщению
Я написал скрипт авторизации, нужно экспертное мнение ошибки, недочеты, замечания. Что нужно для надежной авторизации?. Если у кого есть готовый рабочий скрипт прошу поделиться

<?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("Логина нету"); }

}

?>
2. 3d_killer - 15 Октября, 2014 - 16:47:24 - перейти к сообщению
если бы ты оформил читаемо тогда может кто и глянул...
(Добавление)
могу сказать сразу что МД5 уже особо не актуально в пароле, да и пароль мало разрешенных символов, остальное не смотрел
3. esterio - 15 Октября, 2014 - 18:10:16 - перейти к сообщению
вопрос на подумать: зачем запрещать символи в пароле? если они потом и так хешированние будут

 

Powered by ExBB FM 1.0 RC1