我设计了一个管理员登录页面。 if条件正在起作用,否则条件不起作用。输入错误的用户名或密码后,它在同一页面上显示为空白。
if(isset($_POST['submit']))
{
$userid = $_POST['userid'];
$pass= $_POST['pass'];
$sql = mysqli_query($DBCONNECT, "SELECT * FROM admin WHERE userid='$userid' and pass='$pass'") or die(mysql_error());
//$count=mysql_fetch_array($sql);
$count = mysqli_num_rows($sql) or die(mysql_error());
if($count == 1)
{
$_SESSION['userid'] = $userid;//$_POST['userid'];
echo "hiii";
//header("Location:add_menu.php");
}
else
{
echo "Wrong Username or Password";
}
}
答案 0 :(得分:1)
您使用mysql_error();
导致空白页错误。
使用以下代码可以解决您的问题。
$sql = mysqli_query($DBCONNECT,$query);
$count = mysqli_num_rows($sql);
从您的代码中移除or die(mysqli_error($link))
,这对您来说很合适。
注意: mysqli_num_rows
只能用于面向对象样式的过程样式。
答案 1 :(得分:0)
您可以尝试使用此代码吗?区别在于if($count)
而不是if($count==1)
if(isset($_POST['submit']))
{
$userid = $_POST['userid'];
$pass= $_POST['pass'];
$sql = mysqli_query($DBCONNECT, "SELECT * FROM admin WHERE userid='$userid' and pass='$pass'") or die(mysql_error());
//$count=mysql_fetch_array($sql);
$count = mysqli_num_rows($sql) or die(mysql_error());
if($count)
{
$_SESSION['userid'] = $userid;//$_POST['userid'];
echo "hiii";
//header("Location:add_menu.php");
}
else
{
echo "Wrong Username or Password";
}
}
答案 2 :(得分:0)
Mysqli也将结果作为对象,这样你就可以这样做:
$sql = mysqli_query($con, "SELECT * FROM users WHERE userid='$userid' and pass='$pass'") or die(mysqli_error());
你的mysqli_error只会显示if语句是否错误,我认为你不会提出错误的陈述但是在开发方面做得很好。
然后你可以检查if语句是否正常工作并将其放入:
echo $sql->num_rows;
可以输入变量:
$count = mysqli_num_rows($sql) to $count = $sql->num_rows
或
if($sql->num_rows == 0) {
// here your blank result for error
} else {
// show result here.
}