-2

我有一个 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';
?>
4

3 回答 3

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;
}
于 2012-09-18T02:37:43.560 回答
1

isset($_SESSION['user_level'])是问题所在。

PHP 函数isset返回一个 bool 值,您正在对其进行测试。

于 2012-09-18T02:38:13.370 回答
1

不要在isset()那里使用。它是一个boolean而不是整数。相反,您可以这样做:

代替

if(1 !==(int)(isset($_SESSION['user_level']))) {

if(isset($_SESSION['user_level']) && $_SESSION['user_level'] == 1) {
于 2012-09-18T02:39:25.413 回答