Итак, я просто написал код, в котором администратор может посмотреть имя пользователя и пароль пользователей. Я написал немного кода и немного скопировал из 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;
}
Пожалуйста, исправьте мой код и скажите, где я ошибаюсь.
хорошо. я все понимаю, я позабочусь об этом в следующий раз, но пока кто-нибудь может указать на ошибку, пожалуйста?
Вы пытаетесь смешивать API-интерфейсы mysql. Это не работает.
Сначала вы должны создать одноразовое соединение с базой данных и следовать правильному синтаксису запроса. Вы получаете доступ к методу запроса класса 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";
}
Если вы понизили мой ответ, пожалуйста, напишите комментарий, что в нем не так.
в этом нет ничего плохого
@Lavish Sardana, так почему люди занижают мой ответ.
К вашему сведению, вы не должны использовать функции
mysql_*
в новом коде. Они больше не поддерживаются и официально не рекомендуются. Смотрите красная коробка? Вместо этого узнайте о подготовленные заявления и используйте PDO или MySQLi - эта статья поможет вам решить, какой из них лучше для вас.