2012-09-18 259 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