PHP:其他条件在php中不起作用

时间:2015-08-22 09:32:28

标签: php

我设计了一个管理员登录页面。 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";
    }
}

3 个答案:

答案 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.
}

链接:Check PHP Site Mysqli Num Rows Result