2016-06-01 2 views
0

사용자 권한에 따라 보호해야하는 페이지가 여러 개 있습니다. 페이지로드시 현재 세션 변수를 확인하는 PHP 있습니다.PHP- 페이지에 대한 액세스를 어떻게 제한합니까?

페이지가 테스트되고 있습니다. PHP 코드는! DOCTYPE 위에 위치합니다. 이 코드는 고객이 로그인하지 않았는지 확인합니다. 로그인에있는 세션 변수 세트 페이지는 달리 일반적으로 위에서

<?php 
if (!isset($_SESSION["username"])){ 
    header("location: error.php"); 
} 
?> 

내 세션 변수에만 페이지로 이동하는 사용자에 로그인 한 후, 로그인 한 후 설정을 언급 아무것도로드 페이지를 할 수없는 오류로 리디렉션하지 경우 :

if (mysqli_num_rows($results6) < 1) { //$results6 is a query to check if the user exits in the users database 
    $logInMsg = "invalid log in"; 
} else { 
    session_start(); 
    $_SESSION["username"] = $uName; //$uName is a user input user name 
    header("location: pageabove.php"); 
} 

문제는 심지어 나는 아직도 아직 세션을 시작하지 않았기 때문에 것이 오류 페이지

답변

5

로 리디렉션에 로그인 한 후. 당신은 당신이 (Read more about session_start())에서 세션을 사용하려는 각 페이지에 세션의 시작을 지정 필요 :이 모든 것을

<?php 
session_start(); // start session 

// do check 
if (!isset($_SESSION["username"])) { 
    header("location: error.php"); 
    exit; // prevent further execution, should there be more code that follows 
} 

입니다. 귀하의 로그인 페이지 및 모든. 세션을 활용하고 싶은 곳이면 누구나 시작할 수 있습니다. 그렇지 않으면 "바람을 잃었습니다"입니다.

+0

당신은 저를 때렸습니다! :) – IzzEps

+0

@ Fred-ii- Shank 너 \ 0 * 팁 모자 \ ** – Darren

+0

* 네, 대런을 환영합니다. * \ * 위로 엄지 손가락 표시 \ ** –

관련 문제