Автор Тема: Опять о авторизции  (Прочитано 2307 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nicca

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 74
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Опять о авторизции
« : 07 Августа 2004, 14:34:39 »
Добрый день!
Я написал скрипт авторизации пользователя. Работает он вроде бы нормально,
но хотелось бы узнать насколько правильна моя система авторизации (плюсы и минусы).
А если есть возможность объяснить в чем моя ошибка и как можно улучшить.
Я сдышал про register_globals, там есть свои нюансы(у меня кстати в on выставлено)

Структура:

ФАЙЛ  CONFIG.PHP
function _permission()
 {
   global $ok_user;
   if(!session_is_registered("ok_user"))
      {
         login(\'\');
         exit();
      }
}

function Login($message)
{  
?>


                         
                           
                             
                           
                           
                             
                           
                           
                             
                           
                           
                             
                           
                         

                                0)
            { echo $message;     }
              ?>                                
                             
LOGIN
                             
PASSWD

                       

ФАЙЛ LOGIN.PHP
include(\'config.php\');
session_start();
if($logout==1)
   {
      session_unregister("ok_user");
      session_destroy();
   }
if(isset($_POST[\'login\']))
      {
        $loginusername = strip_tags(trim($_POST[\'username\']));
        $loginpassword = strip_tags(trim($_POST[\'password\']));
        $sql="select user from users where user=\'$loginusername\'";
        $res=db_select($sql);  
        $n=mysql_num_rows($res);
        if($n==0)
         {
            login(\'Неправильный логин.\');
            exit();
         }
      else
         {
            $sql="select pass from users where user=\'$loginusername\'";
            $res=db_select($sql);
            $pass=mysql_result($res, \'pass\');
            if($pass != md5($loginpassword))
              {
               LogIn(\'Неправильный пароль.\');
              }
            else
              {
                 $ok_user=$loginusername;
               session_register("ok_user");
               Header("Location: index.php");
              }
         }            
            
      }
else
   {
      login(\'\');
      exit();
   }      

А потом в каждом файле который защищаю авторизацией пишу:
include(\'config.php\');
session_start();
_permission();
?>

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Опять о авторизции
« Ответ #1 : 07 Августа 2004, 18:29:29 »
очень длинно и неинтересно.
неправильная работа с сессиями.

Оффлайн Nicca

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 74
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Опять о авторизции
« Ответ #2 : 08 Августа 2004, 11:20:04 »
А по-конкретнее можешь обьяснить?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Опять о авторизции
« Ответ #3 : 08 Августа 2004, 12:18:46 »
про сессии написано здесь http://phpfaq.ru/
про длинно..
ну что там объяснять.. зачем-то у тебя отдельная функция под логин, хотя можно обойтись без нее
зачем-то ты аж два раза рапрос к базе делаешь, хотя можно обойтись одним.
 strip_tags зачем-то делаешь

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28