2013-01-22 204 views
0

我有這個代碼,我試圖用來計算一個頁面在將用戶重定向到另一個頁面之前的點擊次數。點擊頁面點擊並重定向?

這個想法是,未登錄的用戶只能在重定向到註冊頁面之前訪問6次profile.php,但它也爲登錄用戶執行此操作,我希望登錄的用戶能夠根據需要多次訪問profile.php。

有人可以告訴我我哪裏出錯了。

所以一個例子是,如果session爲空,那麼頁面訪問限制爲6次,但是如果session =登錄,則允許無限制訪問。

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

if(!isset($_SESSION['logged_in']) && empty($_SESSION['logged_in'])){ 
    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

的問題就在這裏:

if(!isset($_SESSION['logged_in']) && empty($_SESSION['logged_in']))

$_SESSION['logged_in']永遠不能沒有設置。您需要在這裏使用OR運營商。

+1

其實只需要'empty()'。 –

+0

這沒有奏效。它仍然做同樣的事情。請你再解釋一下我需要做的事情。謝謝 –

+0

@TommyLincoln:你需要在if子句中將&&加到'||'。如果您仍然遇到問題,我建議您執行'var_dump($ _ SESSION)'來確保會話已設置爲您期望的狀態。 – xbonez