За последние 24 часа нас посетили 17610 программистов и 1723 робота. Сейчас ищут 1886 программистов ...

Форма Авторизации

Тема в разделе "PHP для новичков", создана пользователем Manvel, 15 янв 2015.

  1. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Слушай, попробуй следующий пост написать не самостоятельно, а через google-переводчик.
    Есть вероятность, что он даст более правильный результат.
     
  2. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    так иди учись армянский поговорим по армянский
     
  3. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    А-Ё ! у нас в Сибири тут каждый 2ой Армянин :)
     
  4. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    вай ес ку джигярт утем ахпер джан ) :)
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Я обидеть не хотел тебя. Просто эксперимента ради. Не пойми неправильно, но читать тебя несколько сложно.
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    ес ку цавет танем ахперес!! :D :D :D
     
  7. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    знаю что сложно но времени нету чтобы исправить мои ошибки руссково языка :)
     
  8. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    ес ку цавет танем ахперес!! :D :D :D

    еще и русский тут подтянем :D
     
  9. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    ;-)
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Лови комменты по коду, для начала.
    Код (PHP):
    1. <?
    2. $connect=mysql_connect("localhost", "root", "")or die(mysql_error()); 
    3. // mysql устарел, сразу учись на mysqli.
    4. // В будущем, не желательно использовать or die(mysql_error()) - не нужно ошибки, если будут, показывать пользователю
    5. mysql_select_db('mysite');
    6.  
    7. $u_login = $_POST['login']; 
    8. $u_password = $_POST['password'];
    9. // Ты копируешь значения переменных из $_POST, но больше ничего не делаешь.
    10. // Почитай про проверку данных перед вставкой в БД, мало просто скопировать их в другие переменные.
    11. $query = mysql_query("SELECT * FROM `users` WHERE `password` = md5('$u_password')") or die(mysql_error());
    12. //Делать выборку только по паролю - не правильно. Одинаковых паролей может быть много.
    13. //Делать просто хэширование пароля - мало. Нужно добавлять к нему так называемую "соль". Про нее гугли отдельно.
    14. //Окей, ты сделал выборку, но...она никуда не идет. Так и было задумано?
    15.  
    16. if(isset($_POST['auth'])){
    17.     $u_login = $_POST['login'];
    18.     $u_password = $_POST['password'];
    19.     //Ты и так уже переприсвоил эти переменные, зачем еще раз это делать? :)
    20.     //И да, все равно потом ты их не используешь.
    21.  
    22.     if(isset($_POST['login']) and isset($_POST['password'])){
    23.         echo "Oki !";
    24.         //Наличия данных в POST не должно быть достаточно, чтобы подтвердить вход.
    25.     }
    26.     else{
    27.         echo "ohh sorry error";
    28.     }
    29. }
    30.  
    31. //напиши в коде, внизу var_dump($_POST); И напиши, что показано будет в браузере, после того, как ты
    32. //введешь логин и пароль.  
    Потому и советую попробовать через гугл. Он корректнее переведет. И тебе будет полезно, для качества.
     
  11. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    может все так и стоит ему указывать php теги в виде <?php ?>, а не <? ?> ????
     
  12. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0

    после var_dump написанно пустой массив вот так array(0) { }

    Добавлено спустя 1 минуту 47 секунд:
    не у меня в коде <?php ?> написанно
     
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    У него изначально их вообще не было в посте, я добавил для себя, чтобы блокнотик синтаксис подсветил, расставлять отступы и комментить в форме на форуме не удобно :) А так да, я тоже против шорттегов.
    Покажи код формы, раз так.

    Добавлено спустя 24 секунды:
    Да, тут претензий нет, все ок. Так и пиши всегда.
     
  14. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    тогда и html форму кидай сюда
     
  15. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    ребят вот весь документ


    <?php
    $connect=mysql_connect("localhost", "root", "")or die(mysql_error());
    mysql_select_db('mysite');

    $u_login = $_POST['login'];
    $u_password = $_POST['password'];
    $query = mysql_query("SELECT * FROM `users` WHERE `password` = '$u_password'") or die(mysql_error());
    var_dump ($_POST);
    if(isset($_POST['auth'])){
    $u_password = md5('password');

    if(isset($_POST['login']) and isset($_POST['password'])){
    echo "Oki !";
    }
    else{
    echo "ohh sorry error";
    }

    }
    ?>


    <form method="post" action="auth.php">
    <input type="text" name="u_login" placeholder=" | Логин" required/><br>
    <input type="password" name="u_password" placeholder=" | Пароль" required/><br>
    <input type="submit" name="auth" value="Войти"/>
    <a href="reg.php">Регистрация</a>
    </form>

    Добавлено спустя 1 минуту 10 секунд:
    не знаю почему но мне кажется что надо сессию написать

    Добавлено спустя 4 секунды:
    не знаю почему но мне кажется что надо сессию написать

    Добавлено спустя 1 минуту 5 секунд:
    <form method="post" action="auth.php"> auth.php это тот же документ

    Добавлено спустя 4 секунды:
    <form method="post" action="auth.php"> auth.php это тот же документ
     
  16. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    форма даже сама не правильно оформлена... вот отсюда и косяки :)

    тогда поля в форме должны быть такими

    <input type="text" name="login" placeholder=" | Логин" required/><br>
    <input type="password" name="password" placeholder=" | Пароль" required/><br>
     
  17. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    и почему не правильни ?
     
  18. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    потому что в $_POST ты запрашиваешь
    $u_login = $_POST['login'];
    $u_password = $_POST['password'];

    а их соответственно нет, потому что они не приходят ))
     
  19. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    ну неет по имени login, password уже в регистрации написанно разве можно их исползьовать при авторизации тоже ?

    Добавлено спустя 1 минуту 22 секунды:
    ты имееш виду что надо так

    $u_login = $_POST['u_login'];
    $u_password = $_POST['u_password']; ?

    Добавлено спустя 4 секунды:
    ты имееш виду что надо так

    $u_login = $_POST['u_login'];
    $u_password = $_POST['u_password']; ?
     
  20. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    одну и туже переменную можно - где угодно и сколько угодно использовать...

    что бы не было путаницы - необходимо правильно реализовать логику ))

    Если не менять поля твоей формы - то получается что так )
     
  21. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    ладно по понятему у меня есть две документи reg.php, auth.php код auth.php уже отправил у меня в базе таблици такие

    id, username, login, password, active

    в регистрации в форме html имя инпутов написанно login password а в авторизации как уже я знаю не надо использовать снова name="login" name="password" а место этого я написал u_login, u_password

    Добавлено спустя 4 минуты 19 секунд:
    когда я напишу логин и пароль которие есть в базе и нажму войти вот создается такой массив

    array(3) { ["u_login"]=> string(7) "k.karen" ["u_password"]=> string(9) "karenchik" ["auth"]=> string(10) "Войти" } ohh sorry error
     
  22. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    в html формах можно использовать одинаковые имена инпутов, всё равно твой обработчик будет выдергивать нужные ему поля, то есть в твоем случае reg.php и в auth.php не страшно использовать ))

    Добавлено спустя 4 минуты 1 секунду:
    Код (Text):
    1. array(3) { ["u_login"]=> string(7) "k.karen" ["u_password"]=> string(9) "karenchik" ["auth"]=> string(10) "Войти" }
    такой массив возвращается потому что у тебя в html форме есть поля
    <input type="text" name="u_login" placeholder=" | Логин" required/><br>
    <input type="password" name="u_password" placeholder=" | Пароль" required/><br>
     
  23. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    вот изменил на это

    <?php
    $connect=mysql_connect("localhost", "root", "")or die(mysql_error());
    mysql_select_db('mysite');

    $login = $_POST['login'];
    $password = $_POST['password'];
    $query = mysql_query("SELECT * FROM `users` WHERE `login` = '$login'") or die(mysql_error());
    var_dump ($_POST);
    if(isset($_POST['auth'])){
    $u_password = md5('password');

    if(isset($_POST['login']) and isset($_POST['password'])){
    echo "Oki !";
    }
    else{
    echo "ohh sorry error";
    }

    }
    ?>


    <form method="post" action="auth.php">
    <input type="text" name="login" placeholder=" | Логин" required/><br>
    <input type="password" name="password" placeholder=" | Пароль" required/><br>
    <input type="submit" name="auth" value="Войти"/>
    <a href="reg.php">Регистрация</a>
    </form>


    и получилось....а если бы оба коди написать в одном документе уже в этом надо изменить имена инпутов или снова нет ?
     
  24. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    если в формах указаны разные экшены ( action="auth.php" ), то можно не изменять имена инпутов
     
  25. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    понятно а тут
    $login = $_POST['login'];
    $password = $_POST['password'];

    я правильно понял что переманная например логин ровно логин бази ?