2012-12-19 46 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'); 
}