我在php中创建了简单的登录表单。有两个页面称为login.html
和login.php
。login.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";
}
}
?>
答案 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>');
}