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

PHP & Base de données Discussion :

Vérification saisie mots clés Mysql


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 506
    Par défaut Vérification saisie mots clés Mysql
    Bonjour,
    je souhaite vérifier que l'utilisateur ne saisisse pas de mots "interdits" lors de la saisie dans un formulaire sur la partie "Description" ($comment_verif), j'avais trouvé un code php sur le net mais çela ne fonctionne pas (pas de message d'erreur, pas d'autre message...)
    Merci de votre aide.

    Bout de code concerné :
    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
     
    // vérification du commentaire
    $comment_verif=$_POST['comments'];
    // liste des mots a bannir dans un tableau
    $tb = array("enfoiré","idiot","naze");
    // initialise le compteur
    $j=0;
    // boucle sur la quantité des valeur du tableau $tb
    while ($j<sizeof($tb))
    {
    // le masque avec les délimitateurs
    $masque = '~\b'.$tb[$j].'\b~';
    // la condition avec le test sur les mots du texte
    if( preg_match_all($masque, $comment_verif, $matches))
     {	// le message d'erreur
     echo '<br />Mots non autorisés dans le commentaire : <strong>'.$matches[0][0].'</strong>';
     }
    // + 1 dans le compteur, on continue de boucler sur tous les mots bannis
     $j++;
    } // fin du while sur les mots

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    On ne fait pas la maintenance des codes que tu trouves, de plus que y'a plein sujets qui parlent de ça sur le forum.

  3. #3
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Bonjour,

    un simple str_ireplace() fait l'affaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $commentaire = str_ireplace(array("enfoiré","idiot","naze"),"",$commentaire);
    si tu veux a tout prix informer des mots interdits :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $subject = "Un texte au hasard... bla enfoiré bla enfoiré bla idiot bla enfoire bla";
    $interdits = array("enfoiré","idiot","naze");
    $pattern = "#".implode("|",$interdits)."#i";
     
    preg_match_all($pattern, $subject, $matches);
     
    if(count($matches)) 
       echo "les mots suivants sont interdits : ".implode(",", array_unique($matches[0]));

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    un str_ireplace replacera toute la chaines, y compris à l’intérieure d'un mot.

  5. #5
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    un str_ireplace replacera toute la chaines, y compris à l’intérieure d'un mot.
    exact, il suffit alors d'ajouter des espaces autour de chaque mot à bannir dans la matrice.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $subject = "Un texte au hasard... bla enfoirétoto bla enfoiré bla idiot bla enfoire bla";
    $interdits = array(" enfoiré "," idiot "," naze ");
    echo str_ireplace($interdits, "", $subject);

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par ska_root Voir le message
    exact, il suffit alors d'ajouter des espaces autour de chaque mot à bannir dans la matrice.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $subject = "Un texte au hasard... bla enfoirétoto bla enfoiré bla idiot bla enfoire bla";
    $interdits = array(" enfoiré "," idiot "," naze ");
    echo str_ireplace($interdits, "", $subject);
    non plus, si y'a une virgule ou un point ça ne marchera pas, il faut passé par un regex et ajouter la limite de mot ( \b )

  7. #7
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    bon ok, finalement je m'en f... ils peuvent bien mettre ce qu'ils veulent dans leurs commentaires...

Discussions similaires

  1. Recherche des mots clés dans ma base MySQL
    Par maxdata dans le forum Langage
    Réponses: 4
    Dernier message: 17/12/2013, 00h28
  2. Réponses: 2
    Dernier message: 21/05/2010, 22h19
  3. [MySQL] [MySQL] requête sql recherche de mots clés
    Par lanysteph dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/07/2009, 18h13
  4. Recherche par mot clés - Php -Mysql
    Par pod1978 dans le forum Requêtes
    Réponses: 8
    Dernier message: 22/09/2006, 13h01
  5. Comment stocker des mots clés dans une bas Mysql
    Par renofx1 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 05/01/2006, 00h57

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