【发布时间】:2017-10-08 02:04:36
【问题描述】:
我正在编写登录脚本并使用mysqli OOP 样式。我编写了echo 脚本来检查它是否获取了数据。结果是登录数据。但是当我想检查num_rows 时,即使我使用$stmt->store_result,它也会返回零。我在这个网站上搜索了很多线程,但它不起作用。 mysqli_num_rows 也不起作用。或者我只是错过了一些数据存储顺序?
这是我的代码。
<?php
require_once "condb.php";
if (!isset($_POST['LOGIN']))
{header("Location:index.php");}
else
{
$username=mysqli_real_escape_string($cn,$_POST['username']);
$password=mysqli_real_escape_string($cn,$_POST['password']);
$hashed_password=password_hash($password,PASSWORD_DEFAULT);
$login = $cn->prepare("SELECT name,username,password,status
FROM login WHERE username=?");
$login->bind_param("s", $username);
$login->execute();
$login->bind_result($name,$username,$password,$status);
$login->store_result();
$login->fetch();
$count=$login->num_rows();
echo $name."<br />".
$username."<br />".
$password."<br />".
$status."<br />".$count;
/*Below here is if condition that I'll used when I finished solving this
problem.*/
/*
if ($count > 0 )
{
if(password_verify($password, $row['password']) &&
$row['status']=="Admin")
{
echo "ok<br>You are Admin!";
header("Location:admin/admin.php");
$login->close();
}elseif(password_verify($password, $row['password']) &&
$row['status']=="Editor")
{
echo "ok<br>You are Editor!";
$login->close();
}elseif(password_verify($password, $row['password']) &&
$row['status']=="Author")
{
echo "ok<br>You are Author!";
$login->close();
}
else
{
echo "Username or password incorrect";
$login->close();
}
}
*/
}
?>
【问题讨论】:
-
你忘记了密码
-
我已经添加了。
-
这条评论是根据我回答的最新代码。
Sname是用户的全名,$username是用户用来登录网站的名称。我得到的所有 4 个变量都不为空。我声称这是真的,因为我从var_dump();和mysqli->execute();看到了结果。