簡體   English   中英

PHP AJAX重定向。 [救命]

[英]PHP AJAX redirect . [help]

我有一個以注冊/登錄方式方式工作的表格。 寄存器部分正常工作。 但是登錄部分有重定向問題...

我將以下代碼用於AJAX。 我對所讀的有關windows.location的所有內容都進行了很多研究,但我不知道該怎么做。

AJAX:

 function logar(){

    $.ajax({
        method: "post",
        url: "validalogin.php",
        data: $("#login-form").serialize(),
    success: function(data){

               alert(data);
    }

});
}

PHP:我嘗試通過用戶鍵入的庫/數據中的結果創建會話之前和之后進行必要的檢查...

if ($result >1) {
    session_name('nacional');
    session_start();
    $_SESSION['cpf']=$cpf;
    $_SESSION['senha']=$senha;


    header("Location: my_folder/index.php");

}
  • 注意:標頭標記未定位。 我是否需要做一些事情,使服務器為ajax返回“確定”並更改目標? 如果是這樣,如何進行?

謝謝收聽。

您應該向JavaScript發送JSON響應,而不是返回標頭。 標頭在后台重定向。 在您的PHP中執行以下操作:

return json_encode(['success' => true]);

然后,將其掌握在您成功的AJAX方法中。 您還需要告訴AJAX使用JSON。 將其放在您的方法和url參數之后,如下所示:

function logar() {
    $.ajax({
        method: "post",
        url: "validalogin.php",
        data: $("#login-form").serialize(),
        dataType: 'json'
    })
    .success(function(data){
        if (data.success == true) {
            alert(data);
            window.location.href = "folder/index.php";
        }
    });
}

我尚未能夠使表格正常工作。 我將在下面發布如何獲取代碼。

形式: 由於代碼的組織,我不得不通過圖像發送

AJAX(與表單在同一頁面上。):

 function logar(){

    $.ajax({
        method: "post",
        url: "validalogin.php",
        data: $("#login-form").serialize(),
        dataType: 'json',
    success: function(data){

        if (data.success == true) {
            alert(data);
            window.location.href = "folder/index.php";
            }
        }

});
}

PHP:(我跳過了上面的代碼的一部分,但這不會影響此處的操作)

        $sql = "SELECT * FROM aluno_login WHERE cpf = '$cpf' and senha ='$senha'  ";

            $result = mysql_query($sql, $conexao);
                while($linha = mysql_fetch_row($result)) { 

                    if ($result <1){
                        unset ($_SESSION['cpf']);
                        unset ($_SESSION['senha']);
                        session_destroy();
                        //echo "Algo deu errado, tente novamente !";
                        //return json_encode('Error' => false);

                    }
                    if ($result >1) {
                        session_name('nacional');
                        session_start();
                        $_SESSION['cpf']=$cpf;
                        $_SESSION['senha']=$senha;
                        return json_encode('success' => true);





                    }

應該行嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM