Ошибка PHP: вызов функции-члена query () на ресурсе, когда все кажется правильным

Итак, я просто написал код, в котором администратор может посмотреть имя пользователя и пароль пользователей. Я написал немного кода и немного скопировал из w3schools: p. Так. Всякий раз, когда я запускаю код, он показывает ошибку [Вызов функции-члена query () на ресурсе]

Вот мой код:

Process.php

<?php
    $username = $_POST['uname'];
    $password = $_POST['pass'];

    $username = stripcslashes($username);
    $password = stripcslashes($password);
    $username = mysql_escape_string($username);
    $password = mysql_escape_string($password);

    $conn = mysql_connect("localhost","root","");
    mysql_select_db("Login3");

    $result = mysql_query("select * from users where username = '$username' and password = '$password'");
    $row = mysql_fetch_array($result);

    if ($row['username'] == $username && $row['password'] == $password) {
        echo "Welcome " . $row['username'];
    }
    else {
        echo "Invalid Credentials";
    }

    echo <h3>User List</h3>;

    mysql_connect("localhost","root","");
    mysql_select_db("Login3");

    $sql = "SELECT id, username, password FROM users";
    $request = $conn->query($sql);
    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            echo "<br> id: ". $row["id"]. " - Name: ". $row["username"]. " " . $row["password"] . "<br>";
        }
    } else {
        echo "0 results";
    }

    $conn->close();
?>

Index.html

<!DOCTYPE html>
<html>
<head>
    <title>Login | Home</title>
</head>
<body>
    <form action = "process.php" method = "POST">
        <h3>Login</h3>
        Username: <input type = "text" name = "uname"><br><br>
        Password: <input type = "password" name = "pass"><br>
        <input type = "submit" name = "btn">
    </form>
    <br>
    <b>Test Accounts</b>
    <table>
        <tr>
            <th>Username</th>
            <th>Password</th>
        </tr>
        <tr>
            <td>admin</td>
            <td>admin@123</td>
        </tr>
    </table>
</body>
</html>
<style>

    table, th, tr, td {
        width: 25%;
        border-collapse: collapse;
    }
    th, td {
        border: 1px solid grey;
        text-align: center;
    }
    tr {
        background: white;
        transition-duration: 0.3s;
    }
    tr:hover {
        background: #ddd;
    }

Пожалуйста, исправьте мой код и скажите, где я ошибаюсь.

К вашему сведению, вы не должны использовать функции mysql_* в новом коде. Они больше не поддерживаются и официально не рекомендуются. Смотрите красная коробка? Вместо этого узнайте о подготовленные заявления и используйте PDO или MySQLi - эта статья поможет вам решить, какой из них лучше для вас.

John Conde 02.05.2018 14:28
Никогда не храните пароли в виде обычного текста! Пожалуйста, используйте Встроенные функции PHP для защиты паролем. Если вы используете версию PHP ниже 5.5, вы можете использовать password_hash () пакет совместимости. Убедитесь, что вы используете не избегайте паролей или используете какой-либо другой механизм очистки перед хешированием. Это приводит к изменению пароля и ненужному дополнительному кодированию.
John Conde 02.05.2018 14:29

хорошо. я все понимаю, я позабочусь об этом в следующий раз, но пока кто-нибудь может указать на ошибку, пожалуйста?

Lavish Sardana 02.05.2018 14:31

Вы пытаетесь смешивать API-интерфейсы mysql. Это не работает.

John Conde 02.05.2018 14:36
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сначала вы должны создать одноразовое соединение с базой данных и следовать правильному синтаксису запроса. Вы получаете доступ к методу запроса класса mysqli, которого нет в вашем коде, если вы хотите получить доступ к методу запроса, тогда сначала создайте интанс этого класса, иначе напишите правильный синтекс запроса. Я исправил, пожалуйста, проверьте ниже

<?php
    $username = $_POST['uname'];
    $password = $_POST['pass'];

    $username = stripcslashes($username);
    $password = stripcslashes($password);
    $username = mysql_escape_string($username);
    $password = mysql_escape_string($password);

    $conn = mysql_connect("localhost","root","");
    mysql_select_db("Login3");

    $result = mysql_query("select * from users where username = '$username' and password = '$password'");
    $row = mysql_fetch_array($result);

    if ($row['username'] == $username && $row['password'] == $password) {
        echo "Welcome " . $row['username'];
    }
    else {
        echo "Invalid Credentials";
    }
?>
<h3>User List</h3>
<?php
    mysql_connect("localhost","root","");
    mysql_select_db("Login3");

    $sql = "SELECT id, username, password FROM users";
    $request = mysql_query($sql);
    if (mysql_num_rows($request) > 0) {
    while($row = mysql_fetch_array($request)) {
        echo "<br> id: ". $row["id"]. " - Name: ". $row["username"]. " " . $row["password"] . "<br>";
    }
} else {
    echo "0 results";
}

Если вы понизили мой ответ, пожалуйста, напишите комментарий, что в нем не так.

Devraj verma 02.05.2018 14:50

в этом нет ничего плохого

Lavish Sardana 02.05.2018 14:53

@Lavish Sardana, так почему люди занижают мой ответ.

Devraj verma 02.05.2018 14:55

Другие вопросы по теме