使用不正确的密码和用户名系统无法正常工作时

时间:2017-10-15 18:20:19

标签: php html

我在php中创建了简单的登录表单。有两个页面称为login.htmllogin.phplogin.html操作页面为login.php。admin具有固定的用户名和密码。当管理员使用其密码系统时,应重定向到管理页面。当用户使用其密码或用户名时,系统应重定向到order.php页。

当用户使用正确的密码和用户名系统正常工作时。但问题是,当有人使用不正确的密码或用户名系统重定向到admin.php页面时。我怎么能解决这个问题。我在下面提到了我的PHP代码。

<?php

session_start();

$uname=$_POST['uname'];
$pwd=$_POST['pwd'];

$servername="localhost";
$username="root";
$password="";
$dbname="mid";

$conn=mysqli_connect($servername,$username,$password,$dbname);

if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
else{
    $sql="select * from reg where uname='$uname' and pwd='$pwd'";

    $result = mysqli_query($conn, $sql);
    $count = mysqli_num_rows($result);

    if($count > 0){
        header('Location:order.php');
    }
    elseif($uname="Admin" && $pwd="abc123"){
        header('Location:admin.php');
    }
    else{
        echo "incorrect";
    }
}
?>

4 个答案:

答案 0 :(得分:1)

你的elseif条件不使用double equals(==)检查是否相等而是使用赋值运算符(=)将条件更改为

 elseif($uname == "Admin" && $pwd == "abc123")

答案 1 :(得分:0)

查找您使用过的比较运算符

在elseif条件

中不应该是'=='或'==='而不是'='

通过使用'='运算符,您将值赋值给变量,并且当赋值成功时,它返回true,这会导致重定向到admin.php页面

答案 2 :(得分:0)

您的代码中存在语法错误。比较运算符错误地用作赋值运算符。使用==进行比较。

代码更正如下:

if($count > 0){
   header('Location:order.php');
}
else if($uname == "Admin" && $pwd == "abc123"){
   header('Location:admin.php');
}
else{
   echo "incorrect";
}

答案 3 :(得分:-1)

尝试改变:

else{
echo "incorrect";
}

else{
header('Location:login.html');
}

或者如果你想获得JS警报

else{
die('<script>alert('incorrect');location.href='login.html';</script>');
}