IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Exclure des mots [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Par défaut Exclure des mots
    Bonsoir tout le monde,

    Je vous soumet mon problème. J'ai un textarea, où mes utilisateurs peuvent saisir un texte. Mon souci, c'est que certaines personnes saisissent des mots que je voudrais interdire.

    Ce que je cherche à faire, c'est au moment de valider, afficher un message si les mots "interdit" sont saisis.

    Merci de votre aide, je pensais à une regex.

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Oui une regex, car strpos() pourrait poser problème.
    Enfin cela dépend du genre de mots à trouver aussi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $mots = array('bip', 'bop');
    $phrase = 'bap bup bop';
    var_dump(preg_match('#\b(' . implode('|', $mots) . ')\b#', $phrase));

  3. #3
    Membre éclairé Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Par défaut
    Est ce possible de le faire en javascript en premier lieu ?
    merci

  4. #4
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Euh, oui

    L'expression reste la même, sauf les délimiteurs / à la place de #

    Mais, il faudra définir les mots directement dans le script js, ou le charger depuis un fichier.

  5. #5
    Membre éclairé Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Par défaut
    Voici pour le moment tout ce qui est fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php 
    if(isset($_POST)) {
    	$mots = array('voleurs','voleur');
    	$phrase = $_POST['desc'];
    	var_dump(preg_match('#\b(' . implode('|', $mots) . ')\b#', $phrase));
    	echo "<hr />";
    }
    ?>
    <form action="type.php" method="post">
    	<textarea name="desc" cols="100" rows="30"></textarea>
    	<input onclick="ValiderFormu(this.form)" style="background-image:url(images/general/bttn_ajouter.png);width:150px;height:25px;border:0;cursor:pointer; margin-top:10px; margin-bottom:10px; margin-left:110px;" type="button" value=" " alt=" " name="valider_form" />
    </form>
     
    </p>
    </div>
    <script type="text/javascript">
    function ValiderFormu(formulaire) {
    	if (formulaire.desc.value=='') {alert("Merci de spécifier une description de ce commerce ou service.");}
    	else {formulaire.submit()}
    }
    </script>
    Avec par exemple ce texte :
    Ces personnes sont des voleurs
    Donc faut que ca affiche une alert car le mot voleurs est saisi

    Merci

  6. #6
    Membre éclairé Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Par défaut
    Reste à l'appliquer en JS, le php, ca me semble bon

  7. #7
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Normalement une expression de ce type pour le js.

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var reg = /\b(voleurs|arsène|lupin)\b/;
    var result = reg.exec(formulaire.desc.value);
     
    if( result )
       alert('chapardeur !');

  8. #8
    Membre éclairé Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Par défaut
    Super bien mon ami

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche des mots contenant ...
    Par Asdorve dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/06/2004, 10h23
  2. Comment changer des mots dans un fichier?
    Par ptitbonum dans le forum Linux
    Réponses: 5
    Dernier message: 07/04/2004, 23h42
  3. Mettre la première lettre des mots en majuscule
    Par seb.49 dans le forum Langage
    Réponses: 8
    Dernier message: 23/05/2003, 14h26
  4. Au sujet des mots de passe
    Par FranT dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2002, 22h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo