2012-12-26 183 views
1

可能重複:
Adding an else statement to page count?僅在未登錄時運行腳本?

我使用的是PHP頁面計數腳本。它會將未登錄的用戶重定向到註冊頁面之前訪問頁面的次數。

基本上未登錄的用戶可以查看其他用戶配置文件,最多可重定向5次,然後才能重新註冊。但是登錄用戶也會發生這種情況,頁數會統計次數並重定向已登錄的用戶。我只希望頁數可以運行並在用戶未登錄時重定向。

是否有人請告訴我我需要在代碼中添加哪些內容才能完成此操作? 我已經嘗試了一切,但無法弄清楚。

<? 
!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()權利之前,你應該有這樣的事情:

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

對於工作,你需要設置一個標誌變量如$_SESSION['logged_in']當用戶登錄到檢查用戶是否登錄。

所以當未登錄用戶的verify_profile_visit_limit()功能纔會運行。

希望這有助於。

+0

感謝這一點,但似乎沒有工作,除非我寫錯了?我有這個: –

+0

<? !session_id()? session_start():null;如果(!isset($ _ SESSION ['logged_in'])&& empty($ _ SESSION ['logged_in'])){ verify_profile_visit_limit(); } 函數verify_profile_visit_limit(){ $ free_profiles = array(99999,99998,99997,99996,99995,99994,99993); (in_array($ _GET [「id」],$ free_profiles))return; (!isset($ _ SESSION [「page_access_count」])){ $ _SESSION [「page_access_count」] = 1; } $ _SESSION [「page_access_count」] ++; ($ _SESSION [「page_access_count」]> 6){ header(「Location:limit.php」); exit(); }} ?> –

+0

當用戶登錄時,程序需要更新會話,以便程序的其餘部分知道用戶何時登錄。所以在你的登錄腳本中添加這行代碼:'$ _SESSION [logged_in'] = true;' – rcorrie