2012-09-18 203 views
-2

我有一个PHP脚本,应该让用户查看基于user_level的页面。如果用户级别设置为1 ..允许用户查看页面。如果没有,然后重定向到index.php ..由于某种原因,它不工作。它给了我一个信息,“你不能访问这个页面”。无论是谁登录,管理员或普通用户,它都会给我提供该信息。有任何想法吗?管理员权限在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'; 
?> 

回答

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; 
} 
+0

@ TechGuy24试试我张贴,它检查isset'user_level'第一代码。 – xdazz

+0

它仍然显示你不允许的消息,无论用户级别 – WebDeVGuy24

+0

@ TechGuy24请执行'var_dump($ _ SESSION)'并首先检查内容。 – xdazz

1

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

PHP函数isset返回您正在测试的bool值。

1

不要在那里使用isset()。这是一个boolean而不是整数。相反,你可以做到这一点的方法:

更换

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

随着

if(isset($_SESSION['user_level']) && $_SESSION['user_level'] == 1) { 
+1

我不明白为什么我的问题是关闭的..我阅读常见问题..我认为这个网站是针对特定的问题,“我”作为一个海报有一个问题,需要帮助..我正在与每个人的地方帮帮我。所以我不明白这个问题是什么? – WebDeVGuy24