За последние 24 часа нас посетили 60277 программистов и 1812 роботов. Сейчас ищут 824 программиста ...

Простейшая аутентификация

Тема в разделе "PHP для новичков", создана пользователем supert, 30 янв 2008.

  1. supert

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

    С нами с:
    30 янв 2008
    Сообщения:
    13
    Симпатии:
    0
    Есть несколько файлов.
    1. index.html

    его код

    <h5> Вход для сотрудников </h5>
    <form name="merch_vhod" method="post" action="merch.php">
    <b>Введите пароль:</b><br>
    <input name="diler" type="password">
    <input type="submit" value="Вход">
    </form>

    2. merch.php

    его код

    <?php
    $add_price="index2.html";
    $pass="111";
    $no_file="";
    if ($diler == $pass)
    { header ("Location: $addprice"); }
    else { header ("Location: $no_file"); }
    ?>

    дык вот. сливаю это все на сервер, все работает, не ругается ни на что, а вот при правильном пароле действует как при неверном. подскажите почему. Спасибо заранее.
     
  2. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  3. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
  4. supert

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

    С нами с:
    30 янв 2008
    Сообщения:
    13
    Симпатии:
    0
    т.е. судя из той инфы в файле 2 нужно написать следующее

    <?php
    $_POST['diler'];
    $add_price="index2.html";
    $pass="111";
    $no_file="";
    if ($_POST == $pass)
    { header ("Location: $addprice"); }
    else { header ("Location: $no_file"); }
    ?>
     
  5. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    supert, давай ка ещё разок прочти и не выдумывай.
     
  6. supert

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

    С нами с:
    30 янв 2008
    Сообщения:
    13
    Симпатии:
    0
    Если получаем данные из формы, отправленной методом POST, то все поля этой формы содержатся в массиве $_POST. Допустим, в форме был элемент
    <input type="hidden" name="var" value="1">,
    то в скрипте, который указан в action формы, можно написать echo $_POST['var']; и будет выведена 1.

    вот что там написано.

    из этого я и сделал вывод.
     
  7. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  8. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
  9. supert

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

    С нами с:
    30 янв 2008
    Сообщения:
    13
    Симпатии:
    0
    я ничег не могу понять. тот пример что я показал, я взял из книги, тут же выходит, что что-то не верно.
     
  10. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Выкинь книжку тогда. Купи другую или читай ман. Там же всё понятно описано.
     
  11. supert

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

    С нами с:
    30 янв 2008
    Сообщения:
    13
    Симпатии:
    0
    ну дык все верно, если следовать подсказкам Вашим,
    необходимо вот что написать: еслив форме эта переменная имеет имя diler, то в обработчике нужно написать,

    if ($_POST['diler'] == $pass)
    { header ("Location: $addprice"); }
    else { header ("Location: $no_file"); }
    ?>

    верно?
     
  12. klissan

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

    С нами с:
    30 янв 2008
    Сообщения:
    8
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. $add_price="index2.html";
    4. $pass="111";
    5. $no_file="";
    6. if ($_POST["diler"] == $pass)
    7. { header ("Location: $addprice"); }
    8. else { header ("Location: $no_file"); }
    9. ?>
    10.  
     
  13. supert

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

    С нами с:
    30 янв 2008
    Сообщения:
    13
    Симпатии:
    0
    как ни странно ничего не изменилось
     
  14. supert

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

    С нами с:
    30 янв 2008
    Сообщения:
    13
    Симпатии:
    0
  15. supert

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

    С нами с:
    30 янв 2008
    Сообщения:
    13
    Симпатии:
    0
    пароль стоит 111, тока ничего не происходит
     
  16. klissan

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

    С нами с:
    30 янв 2008
    Сообщения:
    8
    Симпатии:
    0
    PHP:
    1. $add_price = ...;
    2. header("...$addprice");
    Найди 10 отличий )
     
  17. supert

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

    С нами с:
    30 янв 2008
    Сообщения:
    13
    Симпатии:
    0
    немного не понял, в каком файле это должно быть и если можно полный текст
     
  18. klissan

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

    С нами с:
    30 янв 2008
    Сообщения:
    8
    Симпатии:
    0
    Имена переменных посмотри )
     
  19. supert

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

    С нами с:
    30 янв 2008
    Сообщения:
    13
    Симпатии:
    0
    опа. а что это они разные ? в header без _
     
  20. supert

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

    С нами с:
    30 янв 2008
    Сообщения:
    13
    Симпатии:
    0
    и в моем коде нет header куда его добавлять и зачем мне он тут нужен?
     
  21. klissan

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

    С нами с:
    30 янв 2008
    Сообщения:
    8
    Симпатии:
    0
    У тебя они разные. Я скопипастил из первого примера.
     
  22. supert

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

    С нами с:
    30 янв 2008
    Сообщения:
    13
    Симпатии:
    0
    ОГРОМНОЕ СПАСИБО!!!! Все работает. и еще. Еслине секрет, насколько это надежно?
     
  23. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    supert
    Ненадежно абсолютно :)
    а) Нет проверок на вводимые данные (пользователям доверять нельзя)
    б) Пароли в файлах не хранят

    И т.д и т.п =)
     
  24. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    После header'a должен идти exit/die.