За последние 24 часа нас посетили 41558 программистов и 5733 робота. Сейчас ищут 1576 программистов ...

Ищу помощь

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

  1. Sativa777

    Sativa777 Новичок

    С нами с:
    29 май 2018
    Сообщения:
    4
    Симпатии:
    0
    Короче, суть в чем.

    При вводе логина и паса которые лежат на БД в 'users', должно выдавать либо "Привет, [логин]" , либо "Не правильный логин или пасс".
    Проблема в том, что когда if( mysqli_num_rows( $count ) == 0 ) "Не правильный логин или пасс" выдает всегда. Помогите кто знает как решить, пожалуйста.

    P.S. С меня печенька


    Код (Text):
    1. <?php
    2.  
    3. $con = mysqli_connect('127.0.0.1','root','123','test_db');
    4.  
    5. if( $con == false )
    6. {
    7.     echo "Не удалось соендиниться с сервером! <br>";
    8.     echo mysqli_connect_error();
    9.     exit();
    10. }
    11.  
    12.          header('Content-Type: text/html; charset= utf-8');
    13.    
    14.  
    15. $login = $_POST['login'];
    16. $password = $_POST['password'];
    17.  
    18. $count = mysqli_query($con, "SELECT * FROM `users` WHERE 'login' = '$login' AND 'password' = '$password'");
    19.  
    20.  
    21.      if( mysqli_num_rows( $count ) == 0 )
    22.  
    23. {
    24.     echo "Не правильный логин или пасс";
    25. }else
    26. {
    27.     echo 'Привет, ' . $login . '!';
    28. }
     
  2. kentkent7

    kentkent7 Новичок

    С нами с:
    30 июн 2017
    Сообщения:
    72
    Симпатии:
    5
    Используйте PDO и подстановки, либо хоть к типу приводите.
     
  3. AlexALX

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

    С нами с:
    13 июн 2007
    Сообщения:
    294
    Симпатии:
    5
    Адрес:
    Киев
    у тебя вновь проблемы с кавычками и апострофами - прочита внимательно для чего конкретно их нужно использовать. в твоём случае:

    PHP:
    1. WHERE 'login' = '$login'
    должно быть

    PHP:
    1. WHERE `login` = '$login'
    ну и второе поле тоже. и ещё - в конце запроса лучше добавить LIMIT 1 т.к. в теории результатов может быть больше одоного) хотя всёравно отобразит лишь первый при любом раскладе, но нагрузка чуть меньше будет)
     
    Sativa777 нравится это.
  4. AlexALX

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

    С нами с:
    13 июн 2007
    Сообщения:
    294
    Симпатии:
    5
    Адрес:
    Киев
    можно ещё так (но это не работает если используется зарезервированое слово в mysql)

    PHP:
    1. WHERE login = '$login'
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.841
    Симпатии:
    1.338
    Адрес:
    Лень
    умей отображать все ошибки
     
  6. Sativa777

    Sativa777 Новичок

    С нами с:
    29 май 2018
    Сообщения:
    4
    Симпатии:
    0
    Спасибо, помогло! Только вот вопрос, как ставить такие кавычки?
     
  7. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Этот тайный знак прям как Ёжик в тумане
    [​IMG]
     
  8. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    представляешь, если ты не все кнопки на клавиатуре знаешь, то может стоит потрогать себя там, где раньше не трогал :D
     
  9. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    А я такую красивую отсылку на его аватарку сделал... все равно переплюнули:(
     
  10. Walk

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

    С нами с:
    7 сен 2008
    Сообщения:
    452
    Симпатии:
    86
    Конкретно в вопрос вникать некогда, но на будущее рекомендую использовать только строгое сравнение (===, !==), т.к нестрогое чревато труднонаходимыми ошибками в перспективе.
     
  11. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    мне понравилось про Ёжика. Но боюсь надо писать Ёжик, или даже Ёжик, а то может не понять.