2010-12-09 44 views
0

我想用jQuery做一個PHP數據庫插入。 如何在代碼中添加關鍵字過濾器?如果我在xml輸出文件中寫入所有禁止的單詞forbidden.xml謝謝。如何爲php jquery數據庫插入添加關鍵字過濾器?

插入頁:

<script type="text/javascript" src="../jquery-1.4.2.min.js"></script> 
<script> 
function send(){ 
    var toUrl = "Data.php"; 
    var method = 'GET'; 
     $.ajax({ 
     type:"POST", 
     url:"Data.php", 
     data:{ 
      name:$("#name").val(), 
      sex:$("#sex").val() 
     }, 
     beforeSend:function(){ 
      $("#display").html("Loading..."); 
     }, 
     success:function(data){ 
      $("#display").html(decodeURI(data)); 
      document.getElementById("display").innerHTML = "insert success"; 
     }, 
     error:function(data){ 
      document.getElementById("display").innerHTML = "insert error"; 
     } 
    }); 
} 
</script> 
<form name="input"> 
    name: <input type="name" name="name" id="name" /> 
    sex: <input type="sex" name="sex" id="sex" /> 
    <input type="button" id="Submit" value="Submit" onclick="send()" /> 
</form> 
<div id="display"></div> 

forbidden.xml

<?xml version="1.0" encoding="utf-8"?> 
<dictionary language="EN"> 
    <string>aaa</string> 
    <string>bbb</string> 
    ... 
</dictionary> 

回答

0

你最好這樣做服務器端的,只要你操作的驗證或衛生,你總是處理服務器端,使其降低了風險。

首先,您需要明白,您的代碼應該是抽象的,不需要在JavaScript中編寫特定的錯誤消息。

所以你想要做的就是把所有的信息到服務器,進行進一步檢查,並返回成功/錯誤+信息從服務器上,像這樣:

$.ajax({ 
     type:"POST", 
     url:"Data.php", 
     data:{ 
      name:$("#name").val(), 
      sex:$("#sex").val() 
     }, 
     beforeSend:function(){ 
      $("#display").html("Loading..."); 
     }, 
     success:function(data) 
     { 
      if(data.error) 
      { 
       //Use data.error to alert the user 
      }else 
      { 
       //Use data.message to alert the user 
      } 
     }, 
     error:function(data){ 
      alert("Server Error"); 
     } 
}); 

所以你的JavaScript基本上是正確的,但你的用javascript設置靜態消息,從長遠來看,它並不是最好的主意。

與你的php

的話,你會驗證數據,如SIO:

$name = !empty($_REQUEST['name']) ? $_REQUEST['name'] : false; 
$sex = !empty($_REQUEST['sex']) ? $_REQUEST['sex'] : false; 
$response = array(); 
if($name && $sex) 
{ 
    //Load your xml into an array 
    foreach($badword as $word) 
    { 
     if(strstr($name,$word)) 
     { 
      $response["error"] = "Name contains a restricted word (" . $word . ")"; 
      break 2; //Get out the foreach 
     } 
    } 

    //Validate other items 
} 

if(!isset($responce["error"])) 
{ 
    $response["success"] = true; 
    $response["message"] = "Data has been validated"; 
} 

echo json_encode($response); 
exit; 
+0

感謝尖,所以最好寫入順序是`$ .ajax`,`你編寫PHP code`,`輸入button` ... emmm,`//將你的xml加載到一個數組中,在哪裏加載我的xml文件?再次感謝。 – 2010-12-09 21:59:23