Batia
Новичок
Система авторизации пользователя - помогите разобраться.
Решил я тут "прокачаться" слегка - и наконец то заняться практическим применением ПХП в полную меру - благо время теперь позволяет.
Решил сделать систему авторизации, ибо скоро мне она понадобится в одном из моих проектов.
Вот что у меня получилось:
Хочется узнать у более опытных людей - насколько этот код правильный?
Можно ли его использовать для работающего сайта?
Нужно ли его как то обезопасить?
(наверное стоит сделать проверку вводимых данных, может быть подскажете нужные функции, чтобы я не перерывал весь мануал с ног до головы?)
В общем - очень хотелось бы услышать комментарии по улучшению.
Я же ведь велосипед изобрел
Писать код - тут 2 минуты не больше - а вот придумать его - это я часа полтора мучился - и в итоге - что вышло то вышло...
Жду коментариев....
(это мой первый подобный скрипт... так что - учтите этот факт при вашем ответе )
Решил я тут "прокачаться" слегка - и наконец то заняться практическим применением ПХП в полную меру - благо время теперь позволяет.
Решил сделать систему авторизации, ибо скоро мне она понадобится в одном из моих проектов.
Вот что у меня получилось:
PHP:
<?
// Стартуем сессию...
session_start();
// имя юзера и пароль админа
$admin_login="admin";
$admin_pass="123";
/*
Обработка данных POST массива.
Пока что без безопасных элементов.
*/
if(isset($_POST['login']) & isset($_POST['pasword']))
{
// Присвоим полученные данные - некоторым переменным.
$user_name=$_POST['login'];
$user_pass=$_POST['pasword'];
// Если имя и пароль неверные - выход.
if($user_name != $admin_login) { echo "Login - не верный <BR><a href='index.php'>Back</a>"; exit(); }
if($user_pass != $admin_pass) { echo "Password - не верный <BR><a href='index.php'>Back</a>"; exit(); }
// Независимо от того - есть ли у нас кука с логином или нет
// -записываем в нее новое значение.
// Куку ставим на
SetCookie("user_name", $user_name, time() + 3600);
// Кука поставлена, теперь при следующем входе - имя будет уже введено
// в поле login
// Теперь займемся созданием сессии...
// Если $_SESSION["auth_status"] не существует - то присвоим ей значение - "admin"
if(!isset($_SESSION["auth_status"]))
{
$_SESSION["auth_status"]="admin";
}
}
// Если в сессии есть значение
if(!isset($_SESSION["auth_status"]))
{
// Установим ключ - админ вы или нет - в положение - вывод формы ввода.
$key="form";
}
elseif($_SESSION["auth_status"]=="admin")
{
// Установим ключ - админ вы или нет - в положение - admin
$key="admin";
}
/*
Если пользователь не авторизировался - то выведем ему форму для
авторизации пользователя.
Проверять авторизирован или нет юзер будем при помощзи сессий.
Логин юзера будем сохранять в куках - на всякий случай.
*/
// Проверим - если существует кука с именем пользователя - значит присвоим
// значение этой куки некоторой переменной, и вставим ее в тег <input name="login"...
if(isset($_COOKIE['user_name']))
{
$login=$_COOKIE['user_name'];
}
else
{
$login="";
}
?>
<? if($key=="form") { ?>
<form method="POST">
Login: <input type="text" name="login" value="<? echo $login ?>"><br>
Passw: <input type="password" name="pasword" value=""><br>
<input type="submit" value="Авторизация">
</form>
<? } ?>
<? if($key=="admin") { ?>
Ба!!! Я админ!!!
<? } ?>
<br>
<br>
<a href="index.php">Back</a>
Можно ли его использовать для работающего сайта?
Нужно ли его как то обезопасить?
(наверное стоит сделать проверку вводимых данных, может быть подскажете нужные функции, чтобы я не перерывал весь мануал с ног до головы?)
В общем - очень хотелось бы услышать комментарии по улучшению.
Я же ведь велосипед изобрел

Писать код - тут 2 минуты не больше - а вот придумать его - это я часа полтора мучился - и в итоге - что вышло то вышло...
Жду коментариев....
(это мой первый подобный скрипт... так что - учтите этот факт при вашем ответе )

