2013-08-12 53 views
2

我正在使用Jquery表單插件來提交登錄表單數據。這很好,但我有一個問題,從我的PHP腳本的登錄頁面將成功登錄的用戶重定向到客戶端面板,即無論何時用戶成功登錄,我都會使用header(「location:panel.php」)重定向到我的PHP腳本,這個頁面被作爲迴應發回到登錄頁面,它將被嵌入在登錄頁面中,而不是作爲整個頁面顯示。Jquery表單插件

jQuery代碼;

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

php code;

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

請我需要幫助,提前

回答

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代碼在你的JavaScript代碼然後返回一個JSON響應

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

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

$(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(); 
    }); 
+0

好的,我可以得到一個示例json代碼嗎? – Diamond

+0

@ user2645613我已將json示例添加到答案 – DevZer0

+0

謝謝,兄弟。還有一個問題,希望用戶不能損害使用這個jQuery表單插件的網站的安全性? – Diamond

0

我不認爲你可以使用位置標誌的HTTP頭中使用Ajax。想一想:你用ajax提交一個表單,所以你得到的迴應是Javascript,而不是瀏覽器。

綁定成功處理的.submit()形式,並window.location.href=http://your-url.com

0

您正在使用AJAX如此作出迴應數據和成功重定向用戶設置。

window.location.href = "somewhere.html";