Forum Webscript.Ru

Программирование => PHP => Тема начата: Abram от 16 Мая 2004, 16:22:31

Название: АВторизация пользователя -проблемы
Отправлено: Abram от 16 Мая 2004, 16:22:31
Есть у меня следующий скрипт авторизации(я его взял на єтом форуме, т.к. свой пока не могу написать)
auth.php
$error = array();
$_SESSION[\'username\'] = "";
$_SESSION[\'userpass\'] = "";

if (@$_POST["logon"])
{
 $login = trim(@$_POST["user"]);
 $password = trim(@$_POST["pass"]);
 if ($login=="") { $error[]="Не заполнено поле \\"Имя\\""; }
 if ($password=="") { $error[]="Не заполнено поле \\"Пароль\\""; }
 $sql="select * from zakazu where login=\'$login\' and password=\'$password\'";
 $res=db_select($sql);
 $id=mysql_result($res, \'id\');
 $n=mysql_num_rows($res);
 if($n<=0)
   {
    $error[]="Неправильний пароль або логін";
   }
 if (!count($error))
  {
   $_SESSION[\'username\'] = $id;
   $_SESSION[\'userpass\'] = $password;
  }
}
if (count($error))
{
  echo "Ошибка";
  foreach ($error as $value) { echo "
  • $value
  • "; }
    }

    if (!$_SESSION[\'username\']){
    ?>
    " method="post">

    Username:

    Password:



    }
    Еще есть страница index.php  с такой структурой:
    session_start();
    top
    left
    content
    right
    bottom

    В left я пишу
    if($username)
     {
       if($do==\'upd\')
         { UPDATE }   
      Форма где пользователь может редактировать свою информацию
    ......
     }
    Проблема - после авторизации при отправке формы меня отправляет на index.php проходить авторизацию. Почему? Как должно быть правильно? И еще что можно улучшить в скрипте авторизации(шифровать пароли не предлагать, я специально упростил чтобы меньше здесь писать)
    Название: АВторизация пользователя -проблемы
    Отправлено: Макс от 16 Мая 2004, 16:40:09
    Abram
    ты же при каждом запросе страницы перед проверкой, пошел ли юзер авторизацию очищаешь $_SESSION[\'username\'] :)
    Цитировать
    Abram:
    $_SESSION[\'username\'] = "";
    $_SESSION[\'userpass\'] = "";


    То есть ты его очищаешь, а потом проверяешь :
    Цитировать
    if (!$_SESSION[\'username\']){



    ИМХО эти 2 строки
    $_SESSION[\'username\'] = "";
    $_SESSION[\'userpass\'] = "";
    вообще не нужны если ты не забываешь делать session_start()
    Название: АВторизация пользователя -проблемы
    Отправлено: Меняздесьдавнонет от 16 Мая 2004, 16:51:50
    офигенная идея-брать скрипты на форуме, то есть там,куда, люди приходят с проблемами, там, где ЗАВЕДОМО кривой код