簡體   English   中英

使用Jquery .post方法進行驗證

[英]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.

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