我已将尝试访问employee.php 的非管理员重定向到user.php,但是,管理员角色也被重定向到user.php。 注意:$_SESSION['ID'] 是在登录页面上创建来设置权限的。有两种类型的角色:管理员和用户。
<?php
if(!isset($_SESSION['ID']) &&( $_SESSION['ROLE'] != 'admin') )
{
header("Location:user.php"); //Do not allow him to access.
exit;
}
session_start();
if(!$_SESSION['username']){
header("Location:login.php");
}
?>
我也试过这个。
<?php
if(!isset($_SESSION['ID']) &&( $_SESSION['ROLE'] != 'admin') )
{
header("Location:user.php");
exit;
}
else{
header("Location:employee.php");
exit;}
session_start();
if(!$_SESSION['username']){
header("Location:login.php");
}
?>
登录:code.php
if(isset($_POST['login_btn']))
{
$email_login=$_POST['email'];
$password_login=$_POST['password'];
if (!empty($email_login) || !empty($password_login)) {
$query="SELECT * FROM register WHERE email=? AND pwd=?";
$stmt = $conn->prepare($query);
$stmt->bind_param("ss", $email_login,$password_login);
$stmt->execute();
$result = $stmt->get_result(); // get the mysqli result
if($result->num_rows > 0){
$row = $result->fetch_assoc();
$_SESSION['ID'] = $row['id'];
$_SESSION['ROLE'] = $row['usertype'];
$_SESSION['username'] = $row['username'];
if($_SESSION['ROLE'] == 'admin'){
header("Location:index.php");
die(); }
else{
header("Location:user.php");
die(); }
}
else{
$_SESSION['status']='Email ID or Password is incorrect';
header("Location:login.php");
}
}
else
{
$_SESSION['status']='Email ID or Password is Insert';
header("Location:login.php");
}
}
不幸的是,结果是一样的。有什么解决办法吗?