2012-09-18 7 views
-2

user_level을 기반으로 사용자가 페이지를 볼 수 있도록하는 PHP 스크립트가 있습니다. 사용자 수준이 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

으로

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

를 교체합니다. – xdazz

+0

여전히 사용자 레벨에 관계없이 허용되지 않는 메시지가 표시됩니다 – WebDeVGuy24

+0

@ TechGuy24 먼저 'var_dump ($ _ SESSION)'을 실행하고 내용을 먼저 확인하십시오. – xdazz

1

isset($_SESSION['user_level'])입니다.

PHP 함수 isset은 테스트중인 bool 값을 반환합니다.

1

isset()을 사용하지 마십시오. 그것은 boolean이고 정수는 아닙니다. 대신,이 방법을 수행 할 수 있습니다 TechGuy24 내가, 처음`는 isset을 user_level` 확인 게시 된 코드를 시도 @

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

나는 내 질문이 닫힌 이유를 모르겠다. 나는 자주 묻는 질문을 읽었다. 나는이 사이트가 "나는"포스터로 ​​필요한 도움에 문제가 있다고 생각하는 특정 질문에 대한 것이라고 생각했다. 나는 모두와 어딘가에 가고 있었다. 도움. 그래서 나는 그 문제가 무엇인지 이해하지 못한다. .. – WebDeVGuy24