За последние 24 часа нас посетили 35998 программистов и 1671 робот. Сейчас ищут 1066 программистов ...

HTML форма входа. PHP, MS SQL. Не хочет проверять данные.

Тема в разделе "PHP для новичков", создана пользователем Асаша, 6 янв 2018.

  1. Асаша

    Асаша Новичок

    С нами с:
    15 июл 2017
    Сообщения:
    23
    Симпатии:
    2
    Здравствуйте. Решил создать обычную HTML форму входа, прикрепил к ней php, но он не хочет проверять Логин и Пароль.Т.е, вводишь любое значение в Логине и в Пароле, и он входит. Не знаю что делать. Помогите нубу, пожалуйста.
    HTML
    HTML:
    1. <!DOCTYPE html>
    2.    
    3.     <meta charset="utf-8">
    4.     <title>Авторизация</title>
    5. </head>
    6.     <div class="container">
    7.        
    8.         <form method="post" action="uu.php">
    9.            
    10. <div class="inp-dw">
    11. <input  type="text" name="text" placeholder="Введите Логин"></div>
    12.  
    13. <div class="inp-dw">
    14. <input type="password" name="password" placeholder="Введите Пароль">
    15. </div>
    16. <input class = "btn-dw" type="submit" name="submit" value="Войти">
    17. <a href="#" target="_blank">Сайт</a>
    18.  
    19. </form>
    20. </div>
    21.  
    22. </body>
    23. </html>
    PHP
    PHP:
    1. <?php
    2. $user = filter_input(INPUT_POST, 'text');
    3. $password = filter_input(INPUT_POST, 'password');
    4.  
    5.  
    6. $log = "PC-ПК\SQLEXPRESS";
    7. $u = array("Database"=>"Test", "UID"=>"Test","PWD"=>"1234");
    8. $conn = sqlsrv_connect($log,$u);
    9. $params = array(1,"some data");
    10.  
    11. if(!empty($user) && !empty($password)) {
    12.  
    13. $sql="SELECT users FROM  WHERE login='$user' and password='$password'";
    14.  
    15. $stmt = sqlsrv_query($conn,$sql,$params);
    16. echo "Good";
    17. }else{echo "Введите ";}
    18.  
    19.    
    20.  
    21.  
    22.  
    23.  
    24.  
    25.  
    26.  
    27. ?>
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.810
    Симпатии:
    1.332
    Адрес:
    Лень
    Так ты логику такую задал, где:
    PHP:
    1. if(!empty($user) && !empty($password)) {
    любое значение было, главное чтоб обои небыли пустыми.
    Потом ты в пустую запрос гонишь в бд и на этом Финишер.

    Так где Brutality and Fatality для неверных ?
     
  3. Асаша

    Асаша Новичок

    С нами с:
    15 июл 2017
    Сообщения:
    23
    Симпатии:
    2
    @MouseZver, Вы наверное имели ввиду, где проверка значений на истину или ложь (Brutality and Fatality). Если я Вас правильно понял, то он всё равно не хочет проверять....
    PHP:
    1. <?php
    2. $user = filter_input(INPUT_POST, 'text');
    3. $password = filter_input(INPUT_POST, 'password');
    4.  
    5.  
    6. $log = "PC-ПК\SQLEXPRESS";
    7. $u = array("Database"=>"Test", "UID"=>"Test","PWD"=>"1234");
    8. $conn = sqlsrv_connect($log,$u);
    9. $params = array(1,"some data");
    10.  
    11. if(!empty($user) && !empty($password)) {
    12.  
    13. $sql="SELECT users FROM  WHERE login='$user' and password='$password'";
    14. if ($user = true) {
    15.     echo "Вошёл";
    16. } else{echo "Не получилось войти";}
    17.  
    18.  
    19.  
    20.  
    21.  
    22. }else{echo "Введите значения!";}
    23.  
    24.  
    25.  
    26.  
    27.  
    28. ?>
     
  4. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.597
    Симпатии:
    1.764
  5. Асаша

    Асаша Новичок

    С нами с:
    15 июл 2017
    Сообщения:
    23
    Симпатии:
    2
    @mkramer, Здравствуйте, Спасибо, что откликнулись. Я уже много сайтов посвященной этой тематике перерыл. Делал по примерам. Но либо у меня входи при любом логине и пароле, либо не входи вообще.:( Вот пример:
    PHP:
    1. $user = filter_input(INPUT_POST, 'text');
    2. $password = filter_input(INPUT_POST, 'password');
    3.  
    4.  
    5. $log = "PC-ПК\SQLEXPRESS";
    6. $u = array("Database"=>"Test", "UID"=>"Test","PWD"=>"1234");
    7. $conn = sqlsrv_connect($log,$u);
    8. $params = array(1,"some data");
    9.  
    10. if(!empty($user) && !empty($password)) {
    11.  
    12. $stmt=sqlsrv_query($conn,"SELECT login FROM users WHERE login='$user'");
    13.  
    14. if ($stmt) {
    15.     $rows = sqlsrv_num_rows($stmt);
    16.     if($rows === true)
    17. echo "Da <br/>";
    18. else
    19. echo "Net<br/>";
    20. }
    21.  
    22.  
    23.  
    24.  
    25.  
    26. }else{echo "Введите значения!";}
    27.  
    28.  
    29.  
    30.  
    31.  
    32. ?>
     
  6. Асаша

    Асаша Новичок

    С нами с:
    15 июл 2017
    Сообщения:
    23
    Симпатии:
    2
    :( Просто вставка в БД MS SQL - работает, а проверка для входа не хочет работать....
    HTML:
    1. <!DOCTYPE html>
    2.     <meta charset="utf-8">
    3.     <title>Add</title>
    4. </head>
    5.  
    6. <form method="POST" action="ewq.php">
    7. Название новсоти:<br>  
    8. <input type="text" name="title" />
    9. Текст<br>
    10. <textarea cols="40" rows="10" name="text"></textarea>
    11. <br>
    12. <input type="submit" name="acc">
    13.  
    14.  
    15. </form>
    16.  
    17.  
    18. <?php
    19. $serverName = "PC-ПК\SQLEXPRESS, 1433";
    20. $connectionInfo = array( "Database"=>"Test", "UID"=>"Test", "PWD"=>"1234");
    21. $conn = sqlsrv_connect( $serverName, $connectionInfo);
    22. if(! $conn ) {    
    23.     exit(sqlsrv_error());
    24. }
    25. if(isset ($_POST['acc']))
    26. {
    27.  
    28. $text = strip_tags(trim($_POST['title']));
    29. $textarea = strip_tags(trim($_POST['text']));
    30. $sqql = (iconv("UTF-8" ,"windows-1251","INSERT INTO info(name,text) VALUES(N'$text',N'$textarea')"));
    31. $params = array(1,"some data");
    32. $stmt = sqlsrv_query( $conn, $sqql, $params);
    33.  
    34. echo "Всё хорошо, Ты Молодец)";
    35. }
    36.  
    37.  
    38. ?>
    39.  
    40. </body>
    41. </html>
     
  7. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.597
    Симпатии:
    1.764
    А почему с true сравниваете? А говорите, что-то там читали....
    Разве number of rows - это булево значение? Вот эта функция возвращает действительно булево значение: https://secure.php.net/manual/ru/function.sqlsrv-has-rows.php

    И код уязвим к SQL-инъекциям, но это уже следующая часть мармизонского балета
    --- Добавлено ---
    @Асаша, а что прочитано по PHP? Потому что, простите, но в коде бред копипастера, разумных мыслей нету.