За последние 24 часа нас посетили 21720 программистов и 1045 роботов. Сейчас ищут 702 программиста ...

Помогите пожалуйста с проверкой логина и пароля...

Тема в разделе "MySQL", создана пользователем Владислав Глебов, 29 июл 2019.

  1. Владислав Глебов

    С нами с:
    29 июл 2019
    Сообщения:
    5
    Симпатии:
    0
    Прошу строго не судить, новичок, а поэтому много ещё не понимаю. В чём заключается проблема?
    при обработке этого кода, выдаётся ошибка
    PHP:
    1. <?php
    2. $host='localhost';
    3. $database='host1773545_db';
    4. $user='***';
    5. $pswd='***';
    6. $dbh=mysqli_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
    7. mysqli_select_db($dbh, $database) or die("Не могу подключиться к базе.");
    8.  
    9. $login = 'admin';
    10. $pass = "***";
    11.  
    12. $sql = mysqli_query("Select id from users where login = '$login' and pass = md5('$pass')");
    13. if (mysqli_num_rows($sql) > 0) {
    14.     die("Авторизация прошла успешно");
    15. } else {
    16.    print "Ошибка авторизации";
    17. }
    18. ?>
    ошибка(на английском):
    Warning: mysqli_query() expects at least 2 parameters, 1 given in /home/host1773545/host1773545.hostland.pro/htdocs/www/admin/index.php on line 12

    Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /home/host1773545/host1773545.hostland.pro/htdocs/www/admin/index.php on line 13

    ошибка(на русском):
    Предупреждение : mysqli_query () ожидает как минимум 2 параметра, 1 из которых указан в /home/host1773545/host1773545.hostland.pro/htdocs/www/admin/index.php в строке 12

    Предупреждение : mysqli_num_rows () ожидает, что параметр 1 будет mysqli_result, null указано в /home/host1773545/host1773545.hostland.pro/htdocs/www/admin/index.php строке 13

    помогите пожалуйста, где допустил ошибку?
     
  2. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    ну вроде даже на русский перевел, неужели не понятно - ожидает как минимум 2 параметра, 1 из которых указан
    значит нужно указать и второй параметр!!!!

    PHP:
    1. $sql = mysqli_query($dbh,"Select id from users where login = '$login' and pass = md5('$pass')");
     
    miketomlin нравится это.
  4. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Видимо скрипт был написан под старое расширение mysql (без i). Кроме этой одной буковки надо в каждый query добавить параметр "соединение", у тебя это $dbh.
     
    miketomlin нравится это.
  5. Владислав Глебов

    С нами с:
    29 июл 2019
    Сообщения:
    5
    Симпатии:
    0
    а какой второй параметр надо указать?
    --- Добавлено ---
    к сожалению, ошибка не в этом. Даже заменив, результат остаётся прежний
     
  6. yanuzay

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

    С нами с:
    28 мар 2018
    Сообщения:
    498
    Симпатии:
    57
    у mysql тоже есть функция md5 , как ты думаешь в твоем скрипте функция md5() выполняется как php или как mysql функция?
     
  7. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    Сравни свой вариант с написанным для тебя ;) В процедурном MySQLi соединение является обязательным параметром.