我的计算机上有一个正常工作的登录系统,但是当使用服务器上的HTML用户界面登录时查询似乎不起作用。我已直接在服务器上复制并运行查询,并且工作正常。我得到的错误是:
mysqli_num_rows()期望参数1为mysqli_result,boolean 给定
代码如下:
<?php
include_once 'header.php';
$error = "";
$userID = "";
$username = "";
$userName = isset($_POST["userName"]) ? sanitizeString($_POST["userName"]) : "";
$pass = isset($_POST["pass"]) ? sanitizeString($_POST["pass"]) : "";
if (isset($_POST["login"]))
{
if (empty($userName) || empty($pass))
$error = "<span class='error'>Not all fields were entered</span><br />";
else
{
$login_query = "SELECT
*
FROM users
WHERE username = ?
AND pass = ?";
$login_result = queryMysqli($login_query,array(
array("s",$userName),
array("s",md5($salt.$pass.$pepper)))
);
if (mysqli_num_rows($login_result) == 0)
$error = "<span class='error'>Username/Password invalid</span>";
else
{
$row = mysqli_fetch_array($login_result);
$userID = $row["ID"];
$username = $row["username"];
//Add to session
$_SESSION['userID'] = $userID;
$_SESSION['username'] = $userName;
header("location:manageAdverts.php");
EXIT;
}
}
}
?>
<div class="container">
<div class="col-sm-10">
<div class="row">
<div id="main_body">
<div style="padding:55px;">
<div class="white_background " style="max-width:450px;margin-top:40px;">
<span style="color:red;"><?php echo $error; ?></span>
<p style="font-family: 'Oswald', sans-serif;font-size:26px;margin-bottom:20px;">Login</p>
<div style="border-right:1px solid blue;float:left;">
<form class="form-horizontal" method="post" >
<div class="form-group">
<div class="col-xs-10">
<input type="text" class="form-control" placeholder="Username" name="userName" autofocus value="<?php echo $userName; ?>">
</div>
</div>
<div class="form-group">
<div class="col-xs-10">
<input type="password" class="form-control" placeholder="Password" name="pass" value="<?php echo $pass; ?>">
</div>
</div>
<div class="form-group">
<div class="col-xs-offset-2 col-xs-10">
<div class="checkbox">
<label><input type="checkbox"> Remember me</label>
</div>
</div>
</div>
<p></p>
<button style="background:#0B0B61;" type="submit" class="btn btn-primary" name="login">Login</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php include_once "footer.php"; ?>
答案 0 :(得分:0)
尝试更改此行
if (mysqli_num_rows($login_result) == 0)
到
if (mysqli_num_rows($login_result) === FALSE)
并告诉我它是否解决了错误!
答案 1 :(得分:0)
$login_result
正在返回false
更改
if (mysqli_num_rows($login_result) == 0)
到
if (!$login_result || mysqli_num_rows($login_result) == 0)
答案 2 :(得分:0)
尝试
$login_query = "SELECT * "
$login_query .= "FROM users "
$login_query .= "WHERE username = ? "
$login_query .= "AND pass = ?";
和
if (mysqli_num_rows($login_result) === FALSE)
$error = "<span class='error'>Username/Password invalid</span>";