За последние 24 часа нас посетил 16891 программист и 1646 роботов. Сейчас ищут 976 программистов ...

Запрос пароля в админку

Тема в разделе "PHP для новичков", создана пользователем MrMos, 25 дек 2014.

  1. MrMos

    MrMos Новичок

    С нами с:
    16 дек 2014
    Сообщения:
    36
    Симпатии:
    0
    Нашел в сети код для запроса пароля в админку, переделал под себя, но при вводе логина и пароля ничего не происходит просто просит ввести заново логин и пароль, данные о пользователях записаны в базе: baza в табличке: reg поля в таблице id nik login password acces
    а вот и сам код требующий пароль
    Код (Text):
    1. <?php
    2. include("connect.php");
    3. if (!isset($_SERVER['PHP_AUTH_USER']))
    4.  
    5. {
    6.         Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    7.         Header ("HTTP/1.0 401 Unauthorized");
    8.         exit();
    9. }
    10.  
    11. else {
    12.         if (!get_magic_quotes_gpc()) {
    13.                 $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
    14.                 $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
    15.         }
    16.  
    17.         $query = "SELECT password FROM reg WHERE login='".$_SERVER['PHP_AUTH_USER']."'";
    18.         $lst = @mysql_query($query);
    19.  
    20.         if (!$lst)
    21.         {
    22.             Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    23.         Header ("HTTP/1.0 401 Unauthorized");
    24.         exit();
    25.         }
    26.  
    27.         if (mysql_num_rows($lst) == 0)
    28.         {
    29.            Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    30.            Header ("HTTP/1.0 401 Unauthorized");
    31.            exit();
    32.         }
    33.  
    34.         $pass =  @mysql_fetch_array($lst);
    35.         if ($_SERVER['PHP_AUTH_PW']!= $pass['password'])
    36.         {
    37.             Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    38.            Header ("HTTP/1.0 401 Unauthorized");
    39.            exit();
    40.         }
    41.  
    42.  
    43. }
    44.  
    45.  
    46.  
    47.  
    48. ?>


    вот код файла connect.php
    Код (Text):
    1. <?php
    2. $connect = mysql_connect("localhost","root","") or die(mysql_error());
    3. mysql_select_db("baza");
    4. ?>
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ошибочки какие выводит?
     
  3. MrMos

    MrMos Новичок

    С нами с:
    16 дек 2014
    Сообщения:
    36
    Симпатии:
    0
    не какие просто заново всплывает окно зарпоса логина и пароля
     
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Версия php случаем не 5.4 или выше? Т.к. в этих версия get_magic_quotes_gpc всегда возвращает false (функция удалена)
     
  5. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а дебаг-то включен или ты уже считаешь себя окрепшим крепышом и подавляешь вывод ошибок? ошибки и предупреждения всегда должны выводиться. потому что ты обязан писать код который не бросается ни ошибками ни предупреждениями. так вот. ты проверь что у тебя всё включено и проверь не получается ли каких ошибочек. ну и вообще ты отладку какую-нибудь проведи. зренки раскрой - у тебя 4 стейта в коде которые выводят статус 401 и как следствие заново просят пароль. ТЫ ВОТ ЗНАЕШЬ КАКОЙ ИЗ ЧЕТЫРЕХ ТЕБЕ ПРИХОДИТ??? я вот нет например. это же твой код. ты обязан знать какой кусок кода работает неожиданно.
     
  6. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    В коде одни собаки везде, конечно ошибки не выводятся...
     
  7. MrMos

    MrMos Новичок

    С нами с:
    16 дек 2014
    Сообщения:
    36
    Симпатии:
    0
    Не могу найти как пользоваться дебагрепортом
     
  8. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    А что не понятно?
    Показывай что видишь и где начинается непонимание
     
  9. MrMos

    MrMos Новичок

    С нами с:
    16 дек 2014
    Сообщения:
    36
    Симпатии:
    0
    я так просто понял что дебаг репорт показывает в каком месте ошибка? или я не так понял? и как включить этот дебаг репорт
     
  10. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  11. MrMos

    MrMos Новичок

    С нами с:
    16 дек 2014
    Сообщения:
    36
    Симпатии:
    0
    а собаки это что?
     
  12. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    знак собака: @

    Добавлено спустя 42 секунды:
    Это всё есть в книгах, а ты мучаешь себя, заставляешь их не читать.
     
  13. MrMos

    MrMos Новичок

    С нами с:
    16 дек 2014
    Сообщения:
    36
    Симпатии:
    0
    Блин ввожу вначале error_reporting(0);
    захожу в баузере на адрес, и все тоже самое просит постоянно пароль и логин больше нечего ...

    Добавлено спустя 2 минуты 33 секунды:
    не могу въехать что куда, даже видео урока не нашол
     
  14. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    error_reporting(0); - ТЫ ЭТИМ ВЫКЛЮЧАЕШЬ ВЫВОД ОШИБОК А МЫ ТРЕБУЕМ ЧТОБ ДЕБАГ БЫЛ ПОЛНЫЙ
     
  15. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  16. MrMos

    MrMos Новичок

    С нами с:
    16 дек 2014
    Сообщения:
    36
    Симпатии:
    0
    Ввел строки и вот что выдало:

    Notice: Undefined index: pass in Z:\home\MyBlog.ua\www\admin\prov.php on line 35
    [Денвер: показать возможную причину ошибки]
    Warning: Cannot modify header information - headers already sent by (output started at Z:\home\MyBlog.ua\www\admin\prov.php:35) in Z:\home\MyBlog.ua\www\admin\prov.php on line 37

    Warning: Cannot modify header information - headers already sent by (output started at Z:\home\MyBlog.ua\www\admin\prov.php:35) in Z:\home\MyBlog.ua\www\admin\prov.php on line 38

    А вот эти строки начиная с 23 по 43 строку
    Код (Text):
    1. if (!$lst)
    2.         {
    3.             Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    4.         Header ("HTTP/1.0 401 Unauthorized");
    5.         exit();
    6.         }
    7.  
    8.         if (mysql_num_rows($lst) == 0)
    9.         {
    10.            Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    11.            Header ("HTTP/1.0 401 Unauthorized");
    12.            exit();
    13.         }
    14.  
    15.         $pass =  mysql_fetch_array($lst);
    16.         if ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])
    17.         {
    18.             Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    19.            Header ("HTTP/1.0 401 Unauthorized");
    20.            exit();
    21.         }
     
  17. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Угу он тебе пишет на 35 (output started at Z:\home\MyBlog.ua\www\admin\prov.php:35) строке ты начал отдавать контент
     
  18. MrMos

    MrMos Новичок

    С нами с:
    16 дек 2014
    Сообщения:
    36
    Симпатии:
    0
    Блин не могу сам додуматься , помоги где ошибка, чего пароли не проходят
     
  19. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Так ты глазами сравни, то что сравнивает скрипт, и мне тут не видно строки 35 файла prov.php
     
  20. MrMos

    MrMos Новичок

    С нами с:
    16 дек 2014
    Сообщения:
    36
    Симпатии:
    0
    вот номерация

    Код (Text):
    1. 23  if (!$lst)
    2.        24 {
    3.         25    Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    4.     26    Header ("HTTP/1.0 401 Unauthorized");
    5.     27    exit();
    6.    28     }
    7. 29
    8.   30      if (mysql_num_rows($lst) == 0)
    9.     31    {
    10.      32      Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    11.       33    Header ("HTTP/1.0 401 Unauthorized");
    12.      34      exit();
    13.   35      }
    14. 36
    15.    37     $pass =  mysql_fetch_array($lst);
    16.   38      if ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])
    17.    39     {
    18.    40         Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    19.     41       Header ("HTTP/1.0 401 Unauthorized");
    20.    42        exit();
    21.    43     }
     
  21. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    врешь. у тебя в 35 строке ошибка а ты нам показываешь там фигурную скобку.
     
  22. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Что то нумерация не сходится, ну да ладно.
    На 35 строке как сообшает php ты обратился к ключу массива по имени pass , но его нету, и тут php тебе об этом говорит, после чего ты отправляешь заголовки, но контент уже пошел в виде предыдушей ошибки.
    Так что исправляй обращение к массиву.
     
  23. MrMos

    MrMos Новичок

    С нами с:
    16 дек 2014
    Сообщения:
    36
    Симпатии:
    0
    Строки совпадают
    ошибка таже
    [​IMG]
     
  24. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Собаки советовали убрать. Ты понимаешь что такое массив и почему php ругается на запрос не существующего ключа массива?
     
  25. MrMos

    MrMos Новичок

    С нами с:
    16 дек 2014
    Сообщения:
    36
    Симпатии:
    0
    убрал, тоже самое....