2012-12-26 15 views
1

가능한 중복 :
Adding an else statement to page count?로그인하지 않은 경우에만 스크립트를 실행 하시겠습니까?

가 나는 PHP 페이지 카운트 스크립트를 사용하고 있습니다. 로그인하지 않은 사용자가 등록 페이지로 리디렉션하기 전에 페이지에 액세스 할 수있는 횟수를 계산합니다.

기본적으로 로그인하지 않은 사용자는 가입하기 위해 리디렉션되기 전에 최대 5 번까지 다른 사용자 프로필을 볼 수 있습니다. 하지만 로그인 한 사용자의 경우에도 페이지 카운트가 횟수를 세고 로그인 한 사용자를 리디렉션합니다. 사용자가 로그인하지 않은 경우에만 페이지 수를 실행하고 리디렉션합니다.

누군가가 로그인 할 수 있습니까? 이걸 할 수 있도록 코드에 넣어야 할 것을 보여줘? 나는 모든 것을 시도했지만 알아낼 수는 없습니다. 이를 위해

if(!isset($_SESSION['logged_in']) && empty($_SESSION['logged_in'])){ 
    verify_profile_visit_limit(); 
} 

당신이 그런 $_SESSION['logged_in'] 사용자가 로그인에 같은 플래그 변수를 설정해야합니다 작업 :

<? 
!session_id() ? session_start() : null; 

verify_profile_visit_limit(); 

function verify_profile_visit_limit(){ 
    $free_profiles = array(99999,99998,99997,99996,99995,99994,99993); 

    if(in_array($_GET["id"], $free_profiles)) return; 

    if(! isset($_SESSION["page_access_count"])){ 
     $_SESSION["page_access_count"] = 1; 
    } 

    $_SESSION["page_access_count"]++; 

    if($_SESSION["page_access_count"] > 6){ 
     header("Location: limit.php"); 
     exit(); 
    } 
} 

?> 
+2

여기서'$ _GET'을 사용하지 않습니다. - /index.php? id = 99999' – irrelephant

+0

세션 내에 로그인 상태를 저장하지 않습니까? –

+2

@irrelephant 나는 이것이 심지어 어떻게 외설적 인지를 보지 못했다. –

답변

0

당신이 기능 verify_profile_visit_limit()를 호출 직전에이 같은 일을해야한다 사용자가 로그인했는지 여부를 확인하십시오. 사용자가 로그인하지 않은 경우

그래서 verify_profile_visit_limit() 기능은 실행됩니다.이 도움이

희망을.

+0

이 문제에 대해 고마워하지만 잘못 쓰지 않는 한 제대로 작동하지 않는 것 같습니까? 나는 이것을 가지고있다 : –

+0

6) { header ("Location : limit.php"); exit(); }} ?> –

+0

사용자가 로그인하면 프로그램이 세션을 업데이트하여 나머지 프로그램이 사용자가 로그인 한 시간을 알 수 있도록해야합니다. 따라서 로그인 스크립트에서 다음과 같은 코드 행을 추가하십시오 :'$ _SESSION [logged_in '] = true;' – rcorrie

관련 문제