我有一个PHP脚本,可以让用户根据user_level查看页面。如果用户级别设置为1 ..允许用户查看页面。如果没有,那么将它们重定向到index.php ...由于某种原因它不起作用。它给我的信息是“你不能访问这个页面”。无论谁登录,管理员或普通用户,它都会给我这条消息。有什么想法吗?
<?php
include 'init.php';
include('core/init.inc.php');
var_dump($_SESSION)
if(!logged_in()){
header('Location: index.php');
exit();
}
if(!isset($_SESSION['user_level'])) {
echo 'You are not allowed to access this page. Click <a href="index.php">here</a> to go back to the home page';
exit();
}elseif(1 == (int)$_SESSION['user_level']){
header('Location: create_album.php');
exit;
}
include 'template/header.php';
?>
答案 0 :(得分:1)
isset
返回一个布尔值,将其删除。
if(!isset($_SESSION['user_level'])) {
echo 'You are not allowed to access this page. Click <a href="index.php">here</a> to go back to the home page';
exit();
}elseif(1 == (int)$_SESSION['user_level'])){
header('Location: create_album.php');
exit;
}
答案 1 :(得分:1)
isset($_SESSION['user_level'])
就是问题所在。
PHP函数isset
返回一个bool值,您正在测试它。
答案 2 :(得分:1)
不要在那里使用isset()
。它是boolean
而不是整数。相反,你可以这样做:
替换
if(1 !==(int)(isset($_SESSION['user_level']))) {
使用
if(isset($_SESSION['user_level']) && $_SESSION['user_level'] == 1) {