Soyez le premier à donner votre avis sur cette source.
Snippet vu 7 549 fois - Téléchargée 16 fois
Dans la page de formulaire : ---------------------------- <? // permet juste de voir le resultat if($_POST){ echo $_POST['c1'].$_POST['c2']; } ?> <script LANGUAGE="JavaScript" SRC="submit.js"></script> <form method="post" action="" onsubmit="return lynx(this)"> <textarea name="c1" cols="75" rows="7">Saisissez ici votre texte</textarea> <br><br> <textarea name="c2" cols="75" rows="7">Saisissez ici votre texte</textarea> <br><br> <input type="submit" value="Remplacer"> </form> ---------------------- Dans le fichier submit.js ---------------------- function lynx(form) { // recherche du mot lynx var maReg = new RegExp("lynx ", "gi") ; // boucle tous les champs du formulaire for (var i = 0; i < form.elements.length; i++) { var text = form.elements[i].value.toString() ; // mot de remplacement var resultat = text.replace(maReg, "lynx,") ; //si le mot est trouve on retourne la nouvelle valeur du champ form.elements[i].value = resultat; } }
Tu fais juste remplacer des mots ... tu peux faire la même chose côté serveur. Je vois pas le problème.
Apres l'utilité de ce script est comme je l'ai marqué pour une utilisation transparente avant SecFilterEngine et SecFilterScanPOST il faut donc surtout pas gérer des alertes. La protection coté serveur est déjà présente c'est au contraire pour éviter au posteur de se retrouver avec une page d'erreurs causé par la protection. Sinon en effet mon script était pas trés bien optimisé je vais modifier sur vos conseils ^^
On a deja croise des codes de verification de formulaires beaucoup plus pousses ici, la, il te manque la partie alert, et la verification de multiples champs avec des regexp differentes
Côté PHP :
Tu ne fais que tester si il y a des valeurs POST, pas si les valeurs c1 et c2 existent. Faut changer par ceci :
<?php
if(isset($_POST['c1']) && isset($_POST['c2']))
{
echo $_POST['c1'].$_POST['c2'];
}
?>
Côté HTML :
Tous les attributs des balises doivent être en minuscules. Il manque tout la structure du code HTML de base (html, body et head). Pour ton formulaire on ne met pas de fonction dans le bouton submit, on le met dans le onsubmit du form.
<form method="post" action="" onsubmit="return lynx(this)">
Côté Javascript :
Pour parcourir les éléments d'un formulaire on utilise le tableau elements.
for (var i = 0; i < form.elements.length; i++) {
Et la même chose s'applique pour aller chercher la valeur.
var text = form.elements[i].value;
Le reg que tu utilises est le même à chaque fois. Il est donc inutile qu'il soit redéclaré à chaque fois. Met le avant ta boucle.
Je vois pas pourquoi tu vérifies si le texte est là. De toute façon s'il ne si trouve pas ça ne change rien au résultat final.
Aussi se sont généralement des traitements qui sont fait côté serveur, car les protections javascripts sont facilement contournables. Pour être plus intéressant comme code il faudrait que tu rajoutes des possibilités comme des champs à ignorer, une liste de mots à remplacer, etc.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.