За последние 24 часа нас посетили 35566 программистов и 1819 роботов. Сейчас ищут 789 программистов ...

Проблема с базовой аутентификацией

Тема в разделе "PHP для новичков", создана пользователем alexanderkarpov, 10 мар 2011.

  1. alexanderkarpov

    alexanderkarpov Активный пользователь

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    Всем привет!
    Чтобы войти на мою страницу необходимо пройти базовую аутентификацию. Т.е. загружаю стнаницу, ввожу правильный пароль, но при этом пароль не принимается и просит ввести еще раз пароль! Подскажите в чем проблема спс. Вот коды:
    PHP:
    1. <?php
    2. $dblocation = "localhost";
    3. $dbname = "test";
    4. $dbuser = "root";
    5. $dbpasswd = "root";
    6.  
    7. $dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);
    8. if (!$dbcnx) {
    9. exit("<P>B настоящй момент сервер базы данны не доступен, поэтому корректное отображение страницы невозможно.</P>");
    10. }
    11. @mysql_query("SET NAMES 'cp1251'");
    12.  
    13. ?>
    14. <?php
    15. if(!isset($_SERVER['PHP_AUTH_USER']))
    16. {
    17.     header("WWW-Authenticate: Basic realm=\"Admin Page\"");
    18.     header("HTTP/1.0 401 Unauthorized");
    19.     exit();
    20. }
    21. else
    22. {
    23.     if (!get_magic_quotes_gpc())
    24.     {
    25.         $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
    26.         $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
    27.     }
    28. $query ="SELECT pass from userslist
    29.      WHERE name='{$_SERVER[PHP_AUTH_USER]}'";
    30.     $lst = @mysql_query($query);
    31.     if(!lst)
    32.     {
    33.     header("WWW-Authenticate: Basic realm=\"Admin Page\"");
    34.     header("HTTP/1.0 401 Unauthorized");
    35.     exit();
    36.     }
    37.     if(mysql_num_rows($lst) == 0)
    38.     {
    39.     header("WWW-Authenticate: Basic realm=\"Admin Page\"");
    40.     header("HTTP/1.0 401 Unauthorized");
    41.     exit();
    42.     }
    43.     $pass = @mysql_fetch_array($lst);
    44.     if(md5($_SERVER['PHP_AUTH_PW']) != $pass['pass'])
    45.     {
    46.     header("WWW-Authenticate: Basic realm=\"Admin Page\"");
    47.     header("HTTP/1.0 401 Unauthorized");
    48.     exit();
    49.     }
    50. }
    51. ?>
     
  2. jenya777777

    jenya777777 Активный пользователь

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
  3. Mamont

    Mamont Активный пользователь

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    Не работает скрипт? включи отображение ошибок, в т.ч. notice
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    завяжи юзать собак!

    второе: скопируй куери в пма и посмотри есть ли вобще там подходящий результат.
     
  5. alexanderkarpov

    alexanderkarpov Активный пользователь

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    спасибо всем за ответ,

    jenya777777, попробовал сделать как на твоей ссылке, но таже самая проблема. Прочитал на форумах, что возможная проблема может быть: "PHP установлен как модуль, если PHP установлен как CGI-скрипт, то переменные PHP_AUTH_USER и PHP_AUTH_PW не передаются скрипту и соответственно ничего не работает".
    Mamont, я новенький, подскажи как включить отображения ошибок!

    igordata, на данный момент, использую готовы коды но про собак учту на будущее. В куери подходящий результат есть.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну выведи его и то что прислано как пароль, и визуально сравни где косяк.
     
  7. Mamont

    Mamont Активный пользователь

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    debug

    $lst = @mysql_query($query);
    if(!lst)
     
  8. alexanderkarpov

    alexanderkarpov Активный пользователь

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    Нашел другое код для создания базовой аутентификациии и все получилось. Всем спасибо за помощь!