1

こんにちは、管理セクションのログイン システムに問題があります。問題は、ユーザーが初めてログインしようとすると、$_SESSION がターゲット ページに渡されず、2 回目の試行で正常に動作することです。これは、ログインページで呼び出されるものです

$membership = new Membership();
if($_POST && !empty($_POST['username']) && !empty($_POST['pwd'])) {
$response = $membership->validate_User($_POST['username'], $_POST['pwd']);

}

クラスのメンバーシップで

function validate_user($un, $pwd) {

    $ensure_credentials =  $this->verify_Username_and_Pass($un, $pwd);

    if($ensure_credentials) {
        $_SESSION['status'] = 'authorized';
        $_SESSION['id'] = $ensure_credentials;

        header("location: ambassadorUpdate.php");
        die;
    } else return "Please enter a correct username and password";

}   

ambassadorUpdate に送信せず、SESSION が設定されているときにコードを確認しましたが、ヘッダーを使用してページにリダイレクトすると、最初に SESSION が両方のページに session_start がない場合、

すべてのページが同じフォルダーにある場合、コードは正常に実行されますが、別の管理フォルダーにそれらを整理すると、この問題が発生しますが、すべてのファイルが正しく含まれています。

どんなアイデアでも大歓迎です

4

2 に答える 2

0

変更してみてください:

$membership = new Membership();
if($_POST && !empty($_POST['username']) && !empty($_POST['pwd'])) {
$response = $membership->validate_User($_POST['username'], $_POST['pwd']);
}

if ($response == true){
    header("location: ambassadorUpdate.php");
} else echo "Please enter a correct username and password";

クラスのメンバーシップで

function validate_user($un, $pwd) {

    $ensure_credentials =  $this->verify_Username_and_Pass($un, $pwd);

    if($ensure_credentials) {
        echo 'workied';
        $_SESSION['status'] = 'authorized';
        $_SESSION['id'] = $ensure_credentials;
        echo $_SESSION['status'] . $_SESSION['id'];
        return = true;
    } else return false;
}   
于 2013-01-14T15:24:58.183 に答える
0

コメントを作成できないので、回答を書きます。確認しましたかsession_start() in ambassadorUpdate.php。お使いのブラウザは Cookie を受け入れますか? そうでない場合は、使用すると便利です。または、SID の代わりに"location: ambassadorUpdate.php".?SID使用できます。session_name()=session_id()

お役に立てれば。

于 2013-01-14T15:52:22.443 に答える