ФорумПрограммированиеPHP для идиотов → Авторизация + сессии

Авторизация + сессии

  • Ket1209

    Сообщения: 12 Репутация: N Группа: Кто попало

    Spritz 17 января 2011 г. 2:22

    Здравствуйте!
    У меня есть код авторизации пользователей с использованием сессий.
    При проверке данных на правильность (файл authorize.php), имя пользователя и пароль вписаны прямо в код (Я понимаю, что это не целесообразно и нужно использовать БД, но в данном случае хочу разобраться именно с этим примером).
    В форме авторизации я ввожу правильные (!!!) логин и пароль, однако все равно все время вижу только сообщение: "вы ввели неправильный пароль". Перенаправление на секретную страницу не происходит. Почему? Помогите найти ошибку пожалуйста.

    index.php
     <html>
    <head>
    <title>Введи пароль</title>
    </head>
    <body>
    <form action="authorize.php" method="post">
    Логин:<input type="text" name="user_name"><br>
    Пароль:<input type="password" name="user_pass"><br>
    <input type="submit" name="Submit">
    </form>
    </body>
    </html>


    authorize.php
    <?php
    // открываем сессию
    session_start();
    // данные были отправлены формой?
    if($Submit){
    // проверяем данные на правильность…
    if(($user_name=="cleo")&&($user_pass=="password")){
    $logged_user = $user_name;
    // запоминаем имя пользователя
    session_register("logged_user");
    // и переправляем его на <секретную> страницу…
    header("Location: secretplace.php");
    exit;
    }
    }
    // если что-то было не так, то пользователь получит сообщение об ошибке.
    else {
    echo "вы ввели неправильный пароль";}
    ?>
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 17 января 2011 г. 2:37, спустя 14 минут 29 секунд

    PHP 3 используешь?
  • Ket1209

    Сообщения: 12 Репутация: N Группа: Кто попало

    Spritz 17 января 2011 г. 2:43, спустя 5 минут 50 секунд

    Да, PHP3
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 17 января 2011 г. 2:46, спустя 3 минуты 17 секунд

    if(($user_name=="cleo")&&($user_pass=="password")) я бы заменил на if($user_name=="cleo" && $user_pass=="password") вроде разницы никакой но смотрится посимпатичнее )))
    session_register("logged_user"); меняем на $_SESSION['logged_user'] = true; или ($user_name)
    exit; - вобще убираем
    from TRIAL with LOVE
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 17 января 2011 г. 2:51, спустя 5 минут 22 секунды


    if(($user_name=="cleo")&&($user_pass=="password")) я бы заменил на if($user_name=="cleo" && $user_pass=="password") вроде разницы никакой но смотрится посимпатичнее )))
    session_register("logged_user"); меняем на $_SESSION['logged_user'] = true; или ($user_name)
    exit; - вобще убираем


    у него php 3 ваще то, там session_register
  • Ket1209

    Сообщения: 12 Репутация: N Группа: Кто попало

    Spritz 17 января 2011 г. 3:21, спустя 30 минут 5 секунд

    TRIAL, внесла предложенные вами изменения - результат тот же.
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 17 января 2011 г. 3:50, спустя 28 минут 30 секунд

    Скажите, а почему бы вам не использовать php более поздних версий? Версия PHP 3, принципиальна?
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 17 января 2011 г. 3:50, спустя 19 секунд

    А проверка на лог и пасс вообще проходит и создается ли сессия?
    from TRIAL with LOVE
  • Ket1209

    Сообщения: 12 Репутация: N Группа: Кто попало

    Spritz 17 января 2011 г. 4:10, спустя 19 минут 48 секунд

    Krasun, абсолютно непринципиально.

    Trial, как это проверить?
  • md5

    Сообщения: 11956 Репутация: N Группа: в ухо

    Spritz 17 января 2011 г. 4:12, спустя 1 минуту 25 секунд

    http://phpfaq.ru/headers
    для начала вот так
    все умрут, а я изумруд
  • Ket1209

    Сообщения: 12 Репутация: N Группа: Кто попало

    Spritz 17 января 2011 г. 4:21, спустя 9 минут 3 секунды

    Ошибок и предупреждений нет.
    Пустых строк, лишних символов - нет.
  • md5

    Сообщения: 11956 Репутация: N Группа: в ухо

    Spritz 17 января 2011 г. 4:26, спустя 5 минут 44 секунды

    http://phpfaq.ru/debug
    тогда начнем отсюда?
    все умрут, а я изумруд
  • Ket1209

    Сообщения: 12 Репутация: N Группа: Кто попало

    Spritz 17 января 2011 г. 4:56, спустя 29 минут 36 секунд

    Функция error_reporting(E_ALL); выявила ошибку:
    Notice: Undefined variable: user_name in Z:\home\localhost\www\php\login\authorize.php on line 9

    Строка 9 - собственно и есть проверка данных:


    if($user_name=="admin" && $user_pass=="admin"){
  • md5

    Сообщения: 11956 Репутация: N Группа: в ухо

    Spritz 17 января 2011 г. 4:58, спустя 1 минуту 59 секунд

    Ket1209, ну это не ошибка, это предупреждение
    а когда заполняеш форму - то какие ошибки?
    все умрут, а я изумруд
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 17 января 2011 г. 5:08, спустя 10 минут 34 секунды

    терпеть немогу регистр глобалс

Пожалуйста, авторизуйтесь, чтобы написать комментарий!