2
<?php
//Login Module (Updated, isset now correct)
session_start();
if(!(isset($_SESSION['login']) && ($_SESSION['login'] != ""))) {
    include('processor/ProcessLogout.php');
} else {
    include('processor/ProcessLog.php');
}
?>

問題は...うまくいかないことです。私はそれを真のT_Tに検証させることができないようです. processor/assess_login.php に $_SESSION['login'] を設定しました。ProcessLog は、いくつかの div の単なるコンテナーであり、フォームは asssess_login に情報を渡します (これにより、ログインが成功したかどうかがわかります)。1 つはログイン フォームを表示し、もう 1 つはログアウト フォームを表示します。残念ながら、「ログイン成功」と表示されても... $_SESSION['login'] が '1' への変更を拒否するのはかなり心配です。(ログインが成功した場合は、assess_login でこれを行います。失敗した場合は、空の文字列に設定します。

私が知る限り、 session_start() はこれを覚えているはずですが、何らかの理由で...そうではありません。だから私のバグハンティングのヒント

コンパイル エラーがあり、! 実際には代替案が表示されるため、ビットが「機能している」ことがわかっているだけで、trueと評価されていません。

さて...assess_loginについては...

           if ($db_found) {
        $member_username = quote_smart($member_username, $db_handle);
        $member_password = quote_smart($member_password, $db_handle);

        $sql = "SELECT * FROM $tblname WHERE username=$member_username AND passphrase=$member_password";
        $result = mysql_query($sql);
        $num_rows = mysql_num_rows($result);

        //Validate there is a user
        if($result) {
            if($num_rows == 1) {
                session_start();
                $_SESSION['login'] = '1';
                header("location: ../login_success.php");

            } else {
                session_start();
                $_SESSION['login'] = "";
                header("location: ../login_fail.php");

            }
        } else {
            $error_msg = "Error Validating User! -1";
        }           
    mysql_close($db_handle);
    }

念のため多少埋もれています前に言ったように、ログインを維持することができず、明らかな何かが欠けていることを知っています。

4

2 に答える 2

1

if ステートメントが正しくありません:

if(!(isset($_SESSION['login'])) && ($_SESSION['login'] != ""))

する必要があります

if(!(isset($_SESSION['login']) && $_SESSION['login'] != ""))
于 2012-05-07T19:01:08.087 に答える
0
if(!(isset($_SESSION['login']) && $_SESSION['login'] != ""))

このコードでは、次のように言っています。設定されておらず、空でない場合は、設定されていて空ではありません。

if((isset($_SESSION['login'])) && ($_SESSION['login'] != ""))
于 2012-05-07T19:48:13.777 に答える