2

Jquery フォーム プラグインを使用して、ログイン フォーム データを送信しています。これはうまくいきますが、ログインに成功したユーザーをPHPスクリプトのログインページからクライアントパネルにリダイレクトする際に問題があります.私のphpスクリプトでは、このページは応答としてログインページに送り返され、ページ全体として表示されるのではなく、ログインページに埋め込まれます.

jquery コード;

$(document).ready(function(){
    $("#loginform").ajaxForm({
        target: '#responselogin'
    }).submit();
});

php コード;

<?php
$username=$_POST['username'];
$password=$_POST['password'];
if($username=="tarhe" && $password=="oweh") {
    header("location:panel.php");
} else {
    echo"login failed";
}
?>

助けが必要です、事前に感謝します

4

3 に答える 3

3

ajax を使用しているため、301 ロケーション ヘッダーはブラウザ ウィンドウ全体に影響を与えません。構造化データを JavaScript に返し、代わりに JavaScript リダイレクトを使用する必要があります。

$(document).ready(function(){
$("#loginform").ajaxForm({
success: function (data) {
   if (data == "login failed") {
       $("#responselogin").html("Login Failed");
   } else {
       window.location.href = "panel.php";
   }
}
).submit();
});

これにjson応答を使用すると、実際にはより良くなります。ブラウザでの使用に適した形式になっているためです。

json を使用してこれを処理するには、次のことができます。最初にphpコードを変更してjson応答を返すようにします

$success = 0;
if($username=="tarhe" && $password=="oweh") {
   $success = 1;
}

echo json_encode(array('success' => $success));

次に、JavaScriptコードで

 $(document).ready(function(){
    $("#loginform").ajaxForm({
    type: 'json',
    success: function (data) {
       if (data.success == 0) {
           $("#responselogin").html("Login Failed");
       } else {
           window.location.href = "panel.php";
       }
    }
    ).submit();
    });
于 2013-08-12T07:48:17.460 に答える
0

あなたはajaxを使用しているので、応答データを作成し、成功するとユーザーをリダイレクトします。

 window.location.href = "somewhere.html";
于 2013-08-12T07:51:17.753 に答える