2010-12-09 32 views
0

Je veux faire une insertion de base de données PHP avec jQuery. Comment ajouter un filtre de mots-clés dans le code? Si j'écris tous les mots interdits dans un fichier xml out forbidden.xml Merci.Comment ajouter un filtre de mots-clés pour une insertion de base de données php jquery?

page d'insertion:

<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> 

Répondre

0

votre meilleur de le faire côté serveur, chaque fois que la validation de votre manipulation ou l'assainissement vous gérez toujours côté serveur afin qu'il réduit les risques. Tout d'abord, vous devez comprendre que votre code doit être abstrait de manière à ce que vous n'ayez pas besoin d'écrire des messages d'erreur spécifiques dans javascript.

donc ce que vous voulez faire est d'envoyer toutes les informations sur le serveur, faire vérifier et matcher/erreur + message du serveur comme ceci:

$.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"); 
     } 
}); 

que votre javascript est fondamentalement bon, mais votre mettre un message statique avec javascript, ce n'est pas la meilleure idée à long terme.

donc avec votre php, vous validerait les données comme 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

Merci pour pointue, donc le meilleur ordre d'écriture est '.ajax' $,' votre écriture php recueil HSC, 'entrée button' ... emmm, '// Charger votre xml dans un tableau» où charger mon fichier xml? Merci encore. –

+0

http://stackoverflow.com/questions/3428908/parsing-xml-into-array – RobertPitt