2014-12-10 3 views
-2

관리자 패널에서 작업 중이며 관리자가 여러 사용자간에 작업을 나누기 때문에 특정 사용자가 사용하도록 허용 된 특정 페이지 만 사용할 수 있습니다 (다른 모든 페이지의 링크는 클릭 할 수 없어야 함).).세션 변수를 URL 값과 비교하는 방법

모든 페이지의 URL에 고유 한 페이지 ID가 전달되고 사용자가 사용할 수있는 페이지의 ID가 데이터베이스에 저장되므로 세션 변수와 URL 값을 비교해야합니다. 페이지 ID를 가져 오는 중입니다. 사용자가 사용하도록 허용 된

는이 코드를 시도하지만이 작업 시간을 보냈다으로

if (isset($_SESSION['pageID']) && isset($_GET['page'])) { 
    if ($_SESSION['pageID'] == (int)$_GET['page']){ 
     // Proceeding code 
    } 
    else { 
     // return fail 
    } 
} 

어떤 도움을 주시면 감사하겠습니다 어떤 성공을 받고 없습니다입니다. 미리 감사드립니다.

+0

'위해서 var_dump ($ _ SESSION [ '페이지 id'])'당신이지고있는 것을 확인합니다. – Aditya

+0

당신의 문제는 정확히 무엇입니까? – jurgemaister

+0

두 값은 무엇입니까? –

답변

1

세션에없는 역할을 데이터베이스에 저장해야합니다. 역할 테이블에서 사용자의 권한을 저장할 수 있습니다. 예를 들어 이런 종류의 사용자가이 페이지 ID에 액세스한다고 말할 수 있습니다. 사용자가 페이지에 액세스하려고 할 때이 작업을 만들었 으면이 사용자가이 특정 페이지에 액세스 할 수 있는지 확인하기 위해 쿼리를 테이블에 보내야합니다.

예 의사 코드 :

 
$available_pages_for_user = select * from table_roles where user_id = $_SESSION['user_id'] 
if $_GET['page'] in $available_pages_for_user 
    //Proceed 
else 
    //401 error or smt.. 
1
if (isset($_SESSION['pageID']) && isset($_GET['page'])) { 

    $s = $_SESSION['pageID']; //check what is coming 
    $p = $_GET['page']; 
    if ($s == $p){ 
     // Proceeding code 
    } 
    else { 
     // return fail 
    } 
} 
+0

변수에 $ _SESSION [ 'pageID'] 및 $ _GET [ 'page']을 저장할 때 빈 페이지가 표시됩니다. –

관련 문제