我需要一些帮助,试图找出为什么我的php登录重定向无法正常运行。我首先尝试了一个简单的登录,它工作正常。但是在我根据用户级别添加if语句重定向之后,它就崩溃了。
这是代码:
*编辑:我需要更多帮助,实际上代码重定向到用户角色级别的相应页面。目前,我能够登录(没有登录错误),但它不会将用户发送到他们相应的页面(即:管理员到管理页面,用户到用户页面,协调员到协调员页面)。
<?php
session_start();
include 'connect.php';
$email = $_POST["login_email"];
$pwd= $_POST["login_pwd"];
$role = $_POST["role"];
$sql = "SELECT * FROM users WHERE email='$email' AND password= '$pwd' AND role='$role' ";
if($row != mysqli_fetch_assoc($result)){
echo "Your user name or password is incorrect!";
header("Location:login.html");
}else{
$_SESSION['id'] = $row['id'];
if ($_SESSION['role'] == 'admin') {
header("Location: admin.php");
} else if ($_SESSION['role'] == 'editor') {
header("Location: editor.php");
} else if ($_SESSION['role'] == 'user') {
header("Location: user.php");
}
echo "Successful login!";
}
答案 0 :(得分:0)
位置标头旨在告诉浏览器它应该将页面重定向到另一个源。当你回应内容时,你基本上说你已经完成了发送标题,内容开始了。在发送位置的情况下,您根本不应该发送任何内容,因为页面只会在读取标题时重定向(根本不显示任何内容。)
有关此问题的详情,请参阅this post。
答案 1 :(得分:0)
在您提供的代码中,它显示您将$role
变量设置为$role = $_POST["role"];
,但在重定向时使用$_SESSION['role'] == 'admin'
来确定用户的角色,但您从未设置{{1}在代码中。
尝试下面的代码,看它是否有效;
$_SESSION['role']
如果有问题或者您发现问题,请告诉我。