2012-12-19 51 views
0

我有一個登錄頁面。當用戶名或密碼是正確的,你去主頁。但3次後輸入錯誤的用戶名和密碼,你去另一個頁面(不是主頁)。 我在登錄頁面開始會話。遞增會話

session_start(); 
$_SESSION['login_time']=' '; 

檢查用戶名和密碼後,我想增加與會話,如果是低於4留在登錄頁面:

session_start(); 
if ($_SESSION["login_time"] != null){ 
    $_var = (int)$_SESSION["login_time"] +1; 
    $_SESSION["login_time"] = $_var; 
} 
if($_SESSION['login_time']<4){ 
    header('Location: loginpage.php'); 
} 

但我會不會增加,並且不斷1.請幫忙。

+0

你應該把'在session_start()'只在起步階段,所以從第二一段代碼,你應該刪除'的session_start()'其餘全部是好的,我認爲 – codeomnitrix

+0

哪裏是$ _SESSION [「login_time」]界定? – user7282

+0

這兩部分代碼都在單獨的php頁面中。 – sahar

回答

1
session_start(); 
//if login_time is not set, set it to 0 
    if(!isset($_SESSION["login_time"])) 
     $_SESSION["login_time"] = 0; 
    else 
     $_SESSION["login_time"] += 1; 
//else increase login_time 

//if user did not exceed max tries redirect to loginpage again. 
    if($_SESSION['login_time']<4) 
     header('Location: loginpage.php'); 
    else 
     header('Location: comelater.php'); 
//else send to comelater.php 

請注意,如果用戶超過嘗試,他將無法查看您編寫此代碼的頁面,直到會話結束。

0

嘗試

session_start(); 
if ($_SESSION["login_time"] == null) $_SESSION["login_time"] = 0; 
$_SESSION["login_time"] += 1; 
if($_SESSION['login_time']<4){ 
    header('Location: loginpage.php'); 
} 
0

如果會話使用PHP isset()設置爲不通過檢查如果它不等於NULL,則應檢查。

session_start(); 

if (isset($_SESSION['login_time'])) { 
    $_var = (int) $_SESSION['login_time'] + 1; 
    $_SESSION['login_time'] = $_var; 
} else { 
    $_SESSION['login_time'] = 0; 
} 

if ($_SESSION['login_time'] < 4) { 
    header('Location: loginpage.php'); 
}