[英]Using Jquery .post method for validation
我正在制作小項目,現在正在注冊模塊上工作。 我使用Jquery .post
方法調用頁面,以檢查輸入的數據是否正確。 一切正常,但如果數據不正確,它會顯示該消息,但也會注冊用戶。 這是js代碼:
$("#name").keyup(function(){
$.post("check/user_check.php" , {
username: $("#name").val()
}, function(response) {
$("#validateTips").fadeIn("slow");
$("#validateTips").html(response);
});
});
而user_check.php是:
<?php
include "config.php";
$user = $_POST['username'];
$user_query = mysql_query("SELECT username FROM users WHERE username='$user'");
if(strlen($user) < 3)
{
print "<span id='wrong'>username is too short</span>";
}
還有其他情況,時間太長了,已經采取了,但是我想你明白了什么。 因此,問題是,如果user_check.php打印用戶名不正確,該如何防止注冊?
返回錯誤消息后,請停止執行:
if(strlen($user) < 3)
{
print "<span id='wrong'>username is too short</span>";
die(); //Stop right here
}
好了,您可以通過多種方式解決它,但是對於初學者來說,我建議您以JSON而不是HTML格式發送響應,並在客戶端處理格式。
區分成功和錯誤的一種簡單方法是在服務器上設置適當的HTTP 狀態代碼 。
簡而言之,只需在服務器上設置4XX或5XX代碼,您將最終遇到jQuery ajax錯誤/失敗回調。
您的代碼如下所示:
$.post('check/user_check.php',{ username: $("#name").val() }).done(function(data)
//handle success
}).fail(function(error){
//handle failure
console.log(error.responseText);
});
在您的PHP代碼中,您只需設置狀態代碼即可在出現問題時指示錯誤:
header('HTTP/1.1 400 Bad Request', true, 400);
或者如果您使用的是PHP> = 5.4:
http_response_code(400);
我在這里就此主題發布了更詳細的答案。
在您的jquery代碼中使用off()(對於php為die())以停止執行off()的文檔: http : //api.jquery.com/off/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.