我已经看过一些类似的帖子,但我无法与他们相关,所以这里有:
使用PHP在表单中构建登录。我不熟悉MySQli,我知道我的一些代码有点混合。无论如何,我一直在:
mysqli_query()期望参数1为mysqli,给定字符串,第15行 mysqli_num_rows()正好需要1个参数,2个给定,第16行
你能否清楚地概述我哪里出错了?
除此之外,我知道我需要添加一些更好的安全性,但它只是想让它发挥作用,因为我已经尝试了很长时间。
非常感谢任何其他想法!
<?php
include "connect.php";
// Checking to see if the login form has been submitted
if (isset($_POST['username'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username = $username AND password = $password LIMIT 1";
$result=mysqli_query($sql);
$num_rows = mysqli_num_rows($result);
$row=mysqli_fetch_assoc($result);
// If login information is correct
if ($num_rows == 1) {
echo "You have successfully logged in.";
exit();
}
// If login information is invalid
else {
echo "Invalid login information. Please return to the previous page.";
exit();
}
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<h1>Login</h1>
<form method="post" action="login.php">
Username: <input type="text" name="username" /><br /><br />
Password: <input type="password" name="password" /><br /><br />
<input type="submit" name="submit" value="Log In" />
</form>
</body>
</html>
感谢您一看。
答案 0 :(得分:0)
当您使用mysqli时,无论何时进行查询,都必须传递连接。看看mysqli_connect()
答案 1 :(得分:0)
mysqli_query()
需要两个参数:连接和查询。你错过了连接:
$result=mysqli_query($conn, $sql);
我不知道你在connect.php中定义的位置和方式,但你需要先添加它,然后才能查询任何内容。
答案 2 :(得分:0)
mysqli_query期望第一个参数是连接资源
e.g。
$connection=mysqli_connect("localhost","root","") or die("Failed to connect with MySQL.");
mysqli_query($connection,"SQL HERE");
在你的情况下,
$result = mysqli_query($YOUR_CONNECTION_VARIABLE,$sql);