begin process at 2012 05 27 18:15:26
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaire

 > RECHERCHE ET REMPLACEMENT DE MOT INTERDIT SUR VALIDATION DE FORMULAIRE

RECHERCHE ET REMPLACEMENT DE MOT INTERDIT SUR VALIDATION DE FORMULAIRE


 Information sur la source

Note :
Aucune note
Catégorie :Formulaire Classé sous :rechercher, remplacer, SecFilterEngine, SecFilterScanPOST, corrigé automatiquement Niveau :Débutant Date de création :06/11/2007 Date de mise à jour :08/11/2007 00:03:19 Vu :5 763

Auteur : Fwdavy

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

La sécurité sur serveur quand elle est activé ne permet pas l'envoi des données si celuis-ci inclu un mot interdit.

En effet les paramètres de sûreté de type SecFilterEngine et SecFilterScanPOST interdise certain mot, notamment le mot lynx.

D'autres mot sont aussi interdit mais celui-ci étant le plus couramment utilisé dans une conversation il peut être gênant à la longue de voir ses internautes se refusé l'envoi du formulaire ou l'arrivée sur une page d'erreur à cause de ce dernier. Voici donc une petite source toutes simples pour contourner ce problème.

Source

  • 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;
  • }
  • }
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;
}
}

 Conclusion

Script extrêmement simple a mettre en œuvre car tous les champs du formulaire sont listé et control lé automatiquement.

Il suffit simplement de rajouter dans l'entête de vos pages de formulaire :
<script LANGUAGE="JavaScript" SRC="submit.js"></script>

et d'ajouter sur l'ensemble de vos formulaire : onsubmit="return lynx(this)"


 Historique

06 novembre 2007 00:07:20 :
correction orthographe
07 novembre 2007 21:59:15 :
optimisation
08 novembre 2007 00:03:19 :
correction

 Sources de la même categorie

Source avec Zip Source avec une capture FORMULAIRE TABLEAU par vic511
Source avec Zip Source avec une capture FORMULAIRE DYNAMIQUE par Niidhogg
Source avec Zip Source avec une capture CONTRAINTE DE SAISIE SUR CHAMPS INPUT par ryosama
SELECTS DÉPENDANTS PRÉ-CHARGÉS D'UNE SEULE OPTION par phm
Source avec Zip Source avec une capture BOITE DE DIALOGUE MODALE DE SÉLECTION D'UNE LISTE D'ICONES par JJDai

 Sources en rapport avec celle ci

PARSER LES CARACTÈRES HTML D'UNE STRING par jdmcreator
Source avec Zip REMPLACER PLUSIEURS MOTS ET CARACTÈRES DANS UN CHAMP par abdelaziz_info
REMPLACER UN MOT DANS UNE CHAINE par askil2000
Source avec Zip RECHERCHER ET REMPLACER UN MOT DANS UN TEXTE par lgh
Source avec Zip Source avec une capture REMPLACER LES "TITLE" PAR DES POPUPS par themioux

Commentaires et avis

Commentaire de Arto_8000 le 07/11/2007 01:49:02

Je vais surement faire un commentaire plus long que la source, mais bon.

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.

Commentaire de coucou747 le 07/11/2007 07:16:14 administrateur CS

c'est clair que c'est du tres vieux code...
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

Commentaire de Fwdavy le 07/11/2007 21:17:14

Pour PHP c'était juste pour permettre au gens de tester en fesant un simple copier / coller de ce script...pour le html idem, on est juste dans de l'intégration là.

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

Commentaire de Arto_8000 le 07/11/2007 23:23:42

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

Tu fais juste remplacer des mots ... tu peux faire la même chose côté serveur. Je vois pas le problème.

Commentaire de Fwdavy le 08/11/2007 00:02:02

et si on a pas acces à la configuration du serveur ? Ce qui en soit me parait pas contradictoire, serveur et réseautique n'est pas forcement égale au service développement web...Par ailleurs beaucoup de développeur n'ont pas les ressources (et l'envies ?) nécessaire de s'occuper d'un serveur et qui en soit sont deux métiers différent.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Probleme dans ma fonction Rechercher Remplacer [ par Jarod1980 ] Jarod_Delaware Expression régulière : Remplacer un texte par un autre mais en évitant les liens hypertextes [ par kiwithereturn ] Bonjour,Je sollicite votre aide sur un problème d'expression régulière que je ne maitrise pas du tout.Mon objectif : Filtrer sur un forum, avec Javasc remplacer un message d'attente par un message d'erreur au bout d'une minute [ par mobilotek ] salut!jai un script php, qui est un peu long a s'executer, et avant de le lancer, j'affiche un div qui fait patienter l'utilisateur jusqu'a la fin.je remplacer ok du bouton d'alerte [ par rduvrac ] Bonjour peux t on remplacer la valeur des boutons dans un message d'alerte ? j'ai ce code : choix = confirm("Vous n avez pas rempli le champ"); if Remplacer une image par un <embed> de la même taille lorsqu'on clique dessus [ par leon3d ] Bonjour,Je cherche comment remplacer une image par une balise &lt;embed&gt; lorsqu'on clique sur l'image.Dans mon cas il s'agirait de remplacer une im rechercher mot clé dans propriété word [ par theboubourse ] bonjour je souhaiterai avoir dans une variable les mot clé d'un document word je ne connai pas bcp le javascript si vs connaisé la solution ou un scri Wysiwyg : Rechercher un mot dans un SPAN ou un DIV ??? [ par fabiano13 ] Bonjour,Je cherche a créer une fonction qui permet de rechercher un mot uniquement dans un span spécifique (&lt;span id="wsy" ContentEditable&gt;&lt;/ Remplacer window.open [ par amateurjava ] Bonjour,je cherche à lancer la creation d'un pdf (par FPDF) à partir d'une page, les données provenant de champs de formulaire de cette page.Jusqu'a p Remplacer du texte par une image [ par rorkaii ] Salut à tous, j'ai recherché "un peu" sur le site sans trouvé mon bonheur, alors que je sait que ça existe.Voilà mon problème, en me baladant sur dive rechercher une image dans une page [ par kisscoolgirl ] bonjour ma question est très simple :-je suis sur la page1.html-je veux afficher une alerte sur cette page1.html (genre une image ou du texte) si et


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales