2012-08-24 5 views
0

이 PHP 로그인 및 리디렉션 소프트웨어의 일부로 보안 될 모든 페이지의 시작 부분에 추가해야하는 코드가 있습니다. 사용자가 유효한 사용자 로그인 정보를 가지고 있으면 완벽하게 사용할 수 있지만 다른 '보안'페이지로 이동하여 원래 페이지를 다시 방문하거나 (해당 페이지의 주소를 복사하여 방문 할 새 탭에 붙여 넣기) 시도하면 거부 된 액세스 화면사용자는 보안 페이지에 로그인 할 수 있지만 동일한 페이지를 다시 방문하지 마십시오

세션 캐시 헤더에 문제가 있거나 더 심각한 문제가 있기 때문에이 오류가 발생합니까?

그것은 현재 다음과 같습니다 : 나는 등 다른 사람의 질문에서 헤더를 변경 시도했지만이 문제를 변경 나던

<?php 
session_start(); 
session_cache_limiter(); 
header("Expires: Sat, 01 Jan 2000 00:00:00 GMT"); 
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); 
header("Cache-Control: post-check=0, pre-check=0",false); 

require('config.php'); 

require('functions.php'); 

//this is group name or username of the group or person that you wish to allow access  to 
// - please be advise that the Administrators Groups has access to all pages. 
if (allow_access(Users) != "yes") 
{ 
include ('/home/folder/public_html/members/no_access.php'); 
exit; 
} 
?> 

. 또한 모든 관련 링크를 쳐다 보면서 그들은 액세스 기능을 허용

이 될 것으로 보인다 등 고장이 아닌지 확인했습니다 :

function allow_access($group) 
{ 
     if ($_SESSION[group1] == "$group" || $_SESSION[group2] == "$group" || $_SESSION[group3] == "$group" || 
       $_SESSION[group1] == "Administrators" || $_SESSION[group2] == "Administrators" || $_SESSION[group3] == "Administrators" || 
       $_SESSION[user_name] == "$group") 
       { 
         $allowed = "yes"; 
       }else{ 
         $allowed = "no"; 
       } 
     return $allowed; 
} 
+3

위생 팁 : 부울을 'true'와 'false'가 아니라'yes '로 사용하십시오. – deceze

+0

감사합니다. 팁 주셔서 감사합니다. – user1470324

+0

PHP에서 모든 경고/오류를 비활성화 했습니까? 헤더가 어떻게 든 보내 졌기 때문에 session_start()가 오류로 실행된다고 생각합니다. – Najzero

답변

0

당신은 필요가 없습니다

session_cache_limiter(); 
header("Expires: Sat, 01 Jan 2000 00:00:00 GMT"); 
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); 
header("Cache-Control: post-check=0, pre-check=0",false); 

그리고 실제로 문제를 일으키는 물건 일 수 있습니다.

당신은 무엇을 우리에게 말하고하여이 답을 향상시킬 수

allow_access 

입니다. 물론 텍스트 대신 yes 또는 no 대신 부울을 사용하십시오.

또한 Users은 무엇입니까? 내가 보는 것에 상수가 아니며, 내가 본 것의 대상이 아니며 변수가 아닙니다 ... 그래서 무엇입니까?

+0

네, 아직도 PHP에 대해 많은 것을 배울 필요가 있다는 것을 압니다. 저는 초보자입니다. 필자는이 헤더 코드를 작성하지 않았습니다. Im에서 사용하는 소프트웨어에서 제공하는 것으로, 보안이 필요한 페이지에 추가 할 것을 권장합니다. 내 질문에 액세스 허용 기능을 붙여 넣습니다. – user1470324

+0

@ user1470324 이것이 어떤 소프트웨어인지 물어볼 수 있습니까? – Sammaye

+0

그 이름은 실제로 'php login and redirect'입니다. - www.mpdolan.com/downloads.php – user1470324