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 のままです。助けてください。

4

3 に答える 3

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

ユーザーが試行回数を超えると、セッションが終了するまで、このコードを記述したページを表示できなくなることに注意してください。

于 2012-12-19T08:00:16.780 に答える
0

isset()セッションがnullに等しくないかどうかを確認するのではなく、PHPを使用してセッションが設定されているかどうかを確認する必要があります。

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');  
}
于 2012-12-19T08:02:22.840 に答える
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');  
}
于 2012-12-19T08:00:46.003 に答える