Проверьте плз. скрипт авторизации

Larson

Новичок
Ромик, ты кажется что-то забыл - а если !isset($ok), то будет просто белый экран?

И вообще, зачем нужна эта проверка if ( isset( $ok )? Итак ежу понятно что если данные пришли, то кнопка нажата.
 

makRo

Guest
Re: Проверьте плз. скрипт авторизации

Автор оригинала: Mr_Max
Здраствуйте
возникла необходимость авторизации юзеров для обновления
...
PHP:
  $sql="SELECT * from users WHERE user='$user' and pass='$pass'";//выборка из базы 
?>
Скажите плз. что я не учёл, что не заметил? Возможно что-то пропустил. Буду очень благодарен. Спасибо
Не забывай делать addslashes($user) и addslashes($pass)
это ОЧЕНЬ важно !

И сессии лучше всего для авторизации использовать ! И если не механизм сессий в PHP, то хотя-бы реализовать саму идею сессий с передачей хеша.
 

RomikChef

Guest
макро, я уже задолбался это писать
не
addslashes($user) и addslashes($pass)
а
if (!get_magic_quotes_gpc()) {
addslashes($user);
addslashes($pass);
}
 

Макс

Старожил PHPClub
Ромик,
куки ведь подделать можно, а если в них будет храниться признак прохождения авторизации то это дыра в безопасности
 

RomikChef

Guest
Ну ладно, вот секуреый вариарт - можно отрубать юзера из базы, то есть, если он даже подделает куки.
PHP:
<?
require ("db.php");
if (isset($ok)) { //если нажата кнопка
  $sql="SELECT * from users WHERE user='$user' and pass='$pass'";//выборка из базы 
  $result = mysql_query($sql);
  $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;
  } else {
    header ("Location: login.html");
    exit; 
  }
}
?>  
3. В каждом скрипте из административной части выполняется такая проверка: 
<?
require ("db.php");
$sql="SELECT * from users WHERE user='$user_' and pass='$pass_'";//выборка из базы 
$result = mysql_query($sql);
if(mysql_num_rows($result)<>1) {
  header ("Location: login.html");
  exit;
}
?>
 

RomikChef

Guest
Гы, максим, а я как раз решил исправиться :))))
Ну, вот так.

Ларсон, это не весь скрипт, у него там еще форма и все такое.
 

Larson

Новичок
Меня игнороровали.
2 Ромик : Еще раз спршиваю - а если !isset($ok), то будет просто белый экран?

И вообще, зачем нужна эта проверка if ( isset( $ok )? Итак ежу понятно что если данные пришли, то кнопка нажата.

Что-то я не понял секретности скрипта.
 

makRo

Guest
Автор оригинала: RomikChef
макро, я уже задолбался это писать
не
addslashes($user) и addslashes($pass)
а
if (!get_magic_quotes_gpc()) {
addslashes($user);
addslashes($pass);
}
Заготовь шаблончик, и копи-паст..копи-паст ;)
 

RomikChef

Guest
Ларсон, я про тебя не забыл, и даже ответил 6-)
это обычнейшая проверка в скриптах, которые содержат и форму, и обработчик :)
 

RomikChef

Guest
За что люблю РНР - за то, что его не надо комментировать.
практически натуралтьный язык.
Все и так совершенно ясно.
 
Сверху