Проверьте плз. скрипт авторизации
Здраствуйте
возникла необходимость авторизации юзеров для обновления базы (чтоб знать, кто что когда зделал)
Сначала скрипт был закрит апачем.
Теперь нужно сделать авторизацию через базу
вот как это сделал я:
1. Юзер вызывает страницу логина (login.html)
c с етой страницы екшн на login.php
2. В login.php выполняются следуйщие действия:
Скажите плз. что я не учёл, что не заметил? Возможно что-то пропустил. Буду очень благодарен. Спасибо
Здраствуйте
возникла необходимость авторизации юзеров для обновления базы (чтоб знать, кто что когда зделал)
Сначала скрипт был закрит апачем.
Теперь нужно сделать авторизацию через базу
вот как это сделал я:
1. Юзер вызывает страницу логина (login.html)
c с етой страницы екшн на login.php
2. В login.php выполняются следуйщие действия:
PHP:
<?
if (!isset($ok)) { //если не нажата кнопка - редирект на login.html
header ("Location: login.html");
exit;
}
if (empty($user) or empty($pass)) {//если пустые поля - редирект на login.html
header ("Location: login.html");
exit;
}
if (isset($ok)) { //если нажата кнопка
require ("db.php");
$sql="SELECT * from users WHERE user='$user' and pass='$pass'";//выборка из базы
$result = mysql_query($sql);
while($data=mysql_fetch_array($result)) {
if ($user==$data[user] and $pass==$data[pass]) {//если юзер и пароль из формы=юзерю и паролю из базы
setcookie ("user_", $data[user]);//установка кукисов
setcookie ("pass_", $data[pass]);
}
header ("Location: regional.php");//если все в порядке - редирект на страницу администрирования
exit;
}
if(!($data=@mysql_fetch_array($result))) { //если нулевой результат - редирект на логин
header ("Location: login.html");
exit;
}
}
?>
3. В каждом скрипте из административной части выполняется такая проверка:
<?
if (!isset($user_) or (!isset($pass_))) {//если не установ. куки
header ("Location: login.html");
exit;
}
if (isset($user_) and (isset($pass_))) { //если в куки установленл.
require ("db.php");
$sql="SELECT * from users WHERE user='$user_' and ";
$result = mysql_query($sql);
if(!($data=@mysql_fetch_array($result))) {//если нулевой результат - редирект
header ("Location: login.html");
exit;
}
while($data=mysql_fetch_array($result)) {
$data[user]=$data[user];
$data[pass]=$data[pass];
if (($user_==$data[user]) and ($pass_==$data[pass])) { //если юзер и пасс из куков = юзеру и пасу из базы
setcookie ("user_", $data[user]);
setcookie ("pass_", $data[pass]);
}
if (($user_!==$data[user]) or ($pass_!==$data[pass])) {//если не = то редирект
header ("Location: login.html");
exit;
}
}
}
?>