2010-12-09 19 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