0

このコードを使用して、ユーザーが確認されているかどうかを確認し、確認されていない場合はリダイレクトしようとしています。確認されたかどうかに関係なく、結果がリダイレクトされ続けるため、結果に問題があります。コードは次のとおりです。

<?php
    if(loggedin()){ 
    $check_active_sql = mysql_query("SELECT * FROM members WHERE username = '$username'") or die(mysql_error());
    while ($check_active_res = mysql_fetch_array($check_active_sql)) {
        $active = $check_active_res['active'];
            if($active == "0"){
                header("Location: login.php?verify=true");
            }
            else
            {
            }
        }
    };
?>

ありがとうございました

4

2 に答える 2

1

ユーザーがログインしたら、データベースのフィールドを1に設定すると仮定します。この方法ではなく、セッションを使用してみませんか?

ログインするとすぐに、次のコードを入力します

session_start();
$_SESSION['logged_in'] = 1;

ここで、ユーザーがログインしているかどうかを確認するには、この関数を追加するだけです。

function check_login() {
if($_SESSION['logged_in'] == 1){
return true;
} else {
return false;
}

次に、彼をリダイレクトしたい場合は、次のようにします。

if(!check_login()) {
header('location: http://website.com');
}
于 2013-03-16T10:23:12.093 に答える
-1

次のように empty() を使用してみてください。

     if(empty($active) && $active!=1){
         header("Location: login.php?verify=true");
     }else{

     }

それ以外の

     if($active == "0"){}

empty — 変数が空かどうかを判断する

つまり、変数が空の文字列、false、array()、NULL、"0?、0、および未設定の変数の場合は true を返します。

于 2013-03-16T09:21:05.523 に答える