За последние 24 часа нас посетил 20621 программист и 1826 роботов. Сейчас ищут 1020 программистов ...

Проблемы с php и бд

Тема в разделе "PHP и базы данных", создана пользователем anonim, 17 апр 2017.

  1. anonim

    anonim Новичок

    С нами с:
    17 апр 2017
    Сообщения:
    6
    Симпатии:
    0
    Есть код, только, при его выполнении (а имеено, нажатии на кнопку nameTwo) происходит ошибка. Если пароль зарегистрированного в бд пользователя совпадает с введеным, то выводит "Bad", хотя должно "Good". Помогите найти ошибку!

    PHP:
    1. <?php
    2.     $mysqli = new mysqli ("localhost", "root", "", "myBase");
    3.     $mysqli->query ("SET NAMES 'utf8'");
    4.  
    5.     $nameOne = htmlspecialchars ($_POST["nameOne"]);
    6.     $emailOne = htmlspecialchars ($_POST["emailOne"]);
    7.     $passwordOne = htmlspecialchars ($_POST["passwordOne"]);
    8.  
    9.     $emailTwo = htmlspecialchars ($_POST["emailTwo"]);
    10.     $passwordTwo = htmlspecialchars ($_POST["passwordTwo"]);
    11.  
    12.     $realyEmail = $mysqli->query ("SELECT `login` FROM `users` WHERE `login` LIKE '$emailTwo'");
    13.     $realyPassword = $mysqli->query ("SELECT `password` FROM `users` WHERE `password` LIKE '$passwordTwo'");
    14.  
    15.     if (isset($_POST["doneOne"])) {
    16.         $mysqli->query ("INSERT INTO `users` (`name`, `login`, `password`) VALUES ('$nameOne', '$emailOne', '$passwordOne')");
    17.     }
    18.  
    19.     if (isset($_POST["doneTwo"])) {
    20.         if (($emailTwo == $realyEmail) && ($passwordTwo == $realyPassword)) {
    21.             echo "GOOD!";
    22.         }
    23.         else {
    24.             echo "Bad!";
    25.         }
    26.     }
    27.  
    28.  
    29.     $mysqli->close ();
    30. ?>
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    11, 12 line
    `login` = '$emailTwo'
    `password` = '$passwordTwo'
    + выходит у тебя ассоциативный массив после запроса, какой нак массив сравнивают со string ?
     
    Fell-x27 нравится это.
  3. torm84

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

    С нами с:
    17 май 2010
    Сообщения:
    23
    Симпатии:
    0
    В моем понимании должно быть что то типа:
    Код (Text):
    1.  
    2. $mysqli->query ("SELECT `login` FROM `users` WHERE `login` LIKE '$emailTwo'");
    3. $realyEmail = $mysqli->fetch_assoc();
    4. $mysqli->query ("SELECT `password` FROM `users` WHERE `password` LIKE '$passwordTwo'");
    5. $realyPassword = $mysqli->fetch_assoc();
    6.  
    7. .....
    8.  
    9. if (($emailTwo == $realyEmail['LOGIN']) && ($passwordTwo == $realyPassword['PASSWORD'])) {
    10.  
    11. .....
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    *а логика присутствовать
     
  5. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @anonim
    Вроде ты ошибся тут:
    PHP:
    1. if (isset($_POST["doneTwo"])) {
    2.         if (($emailTwo == $realyEmail) && ($passwordTwo == $realyPassword)) {
    3.             echo "GOOD!";
    4.         }
    5.         else {
    6.             echo "Bad!";
    7.         }
    Поменяй местами:
    PHP:
    1. if (isset($_POST["doneTwo"])) {
    2.         if (($emailTwo == $realyEmail) && ($passwordTwo == $realyPassword)) {
    3.       echo "Bad!";
    4.         }
    5.         else {
    6.             echo "GOOD!";
    7.         }
    Может поможет :D