Mot interdi pour inscription

ivan -  
 ivan -
Bonjour,

j'ai fait le code pour verifier si le pseudo et pris ou libre donc

// on verifie si le pseudo est libre

function writediv(texte)
     {
     document.getElementById('pseudobox').innerHTML = texte;
     }

function verifPseudo(pseudo)
     {
     if(pseudo != '')
               {
               if(pseudo.length<2)
                         writediv('<span class="prie"><b>'+pseudo+' :</b> ce pseudo est trop court</span>');
               else if(pseudo.length>30)
                         writediv('<span class="prie"><b>'+pseudo+' :</b> ce pseudo est trop long</span>');
               else if(texte = file('../includes/verifpseudo.php?pseudo='+escape(pseudo)))
                         {
          if(texte == 1)
               writediv('<span class="prie"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>');
          else if(texte == 2)
               writediv('<span class="libre">'+pseudo+' :</b> ce pseudo est libre</span>');
          else
               writediv(texte);
                         }
               }

     }

function file(fichier)
     {
     if(window.XMLHttpRequest) // FIREFOX
          xhr_object = new XMLHttpRequest();
     else if(window.ActiveXObject) // IE
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     else
          return(false);
     xhr_object.open("GET", fichier, false);
     xhr_object.send(null);
     if(xhr_object.readyState == 4) return(xhr_object.responseText);
     else return(false);
     }


j'ai fais une page mot_interdit

j'ai pensai a faire sur ma page mot cinterdit.php

regex qui vérifierai si le pseudo contient des caractères corrects : /[a-z0-9.-]+/i

et un autre pour dire ce pseudo est interdit

donc si tape caca pout etc...

il met ce pseudo est interdit

je voudrais qqun puisse m'aider a faire le code avec les mot interdit et carractere correcte

merrci de votre aide

9 réponses

  1. JooS Messages postés 2705 Statut Membre 228
     
    Salut,

    Et ben il suffit de créer un tableau contenant les mots interdits ...
    $wrong = array('caca', 'pipi');

    ... et d'ajouter une vérification du genre ...
    if(in_array($pseudo, $wrong)) echo 'Pseudo inapproprié.'; // Ou : echo 3;

    ... et puis dans la fonction "verifPseudo", il suffit d'ajouter un deuxième "else if" qui vérifiera si texte est égale à 3 (cas ou le pseudo est inapproprié).

    Mettez en résolu quand c'est résolu ...
    0
  2. ivan
     
    merci donc dans la page verifpeudo.php

    j'ai rajoute a la fin

    <?php
    //
    // VERIFICATION EN LIVE DU PSEUDO
    //
    
    // CONNECION SQL
    include("../includes/pdo.inc.php");
    
    if(isset($_GET['pseudo'])){
    	// VERIFICATION
    	$result = $pdo->prepare("SELECT membre_pseudo FROM forum_membres WHERE membre_pseudo=?");
    	$result->execute(array($_GET['pseudo']));
    	
    	if($result->rowCount() < 1)
    	echo '0';
    		else
    	echo '1';
    }else{
    	echo -1;
    }
    
    
    
    
    // j'ajoute if else pour mot interdit
    
    else{
    	echo -3;
    }
    
    
    
    ?>
    


    et sur la page inscription.js

    // on verifie si le pseudo est libre
    
    function writediv(texte)
         {
         document.getElementById('pseudobox').innerHTML = texte;
         }
    
    function verifPseudo(pseudo)
         {
         if(pseudo != '')
                   {
                   if(pseudo.length<2)
                             writediv('<span class="prie"><b>'+pseudo+' :</b> ce pseudo est trop court</span>');
                   else if(pseudo.length>30)
                             writediv('<span class="prie"><b>'+pseudo+' :</b> ce pseudo est trop long</span>');
                   else if(texte = file('../includes/verifpseudo.php?pseudo='+escape(pseudo)))
                             {
              if(texte == 1)
                   writediv('<span class="prie"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>');
              else if(texte == 2)
                   writediv('<span class="libre">'+pseudo+' :</b> ce pseudo est libre</span>');
              else
                   writediv(texte);
                             }
                   }
    
         }
    
    function file(fichier)
         {
         if(window.XMLHttpRequest) // FIREFOX
              xhr_object = new XMLHttpRequest();
         else if(window.ActiveXObject) // IE
              xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
         else
              return(false);
         xhr_object.open("GET", fichier, false);
         xhr_object.send(null);
         if(xhr_object.readyState == 4) return(xhr_object.responseText);
         else return(false);
         }
    /// ici on ajoute les mots interdit
    
    $wrong = array('caca', 'pipi');
    
    
    if(in_array($pseudo, $wrong)) echo 'Pseudo inapproprié.';
    


    merci si tu peux m'aider a faire ce code
    0
  3. JooS Messages postés 2705 Statut Membre 228
     
    Non,

    Il faut faire la différence entre PHP et Javascript.
    Il faut que tu comprennes que Javascript est une technologie back-end, ce qui veut dire qu'il s'exécute coté client (sur les PC et non pas sur le serveur), donc, un utilisateur mal intentionné peut facilement modifier le contenu de tes fichiers Javascript (qui sont sur son PC) afin de sauter/éviter toute les vérifications (mot court, mot long ...), donc la couche de sécurité la plus importante c'est coté serveur (PHP), Javascript est insuffisant a lui seul.

    <?php
    include("../includes/pdo.inc.php");
    
    $wrong = array('caca', 'pipi');
    
    if(isset($_GET['pseudo'])) {
      if(strlen($_GET['pseudo']) < 2) echo 'Pseudo trop court.';
      elseif(strlen($_GET['pseudo']) > 30) echo 'Pseudo trop long.';
      elseif(in_array($pseudo, $wrong)) echo 'Pseudo inapproprié.';
      else {
        $result = $pdo->prepare("
          SELECT membre_pseudo 
          FROM forum_membres 
          WHERE membre_pseudo = ?");
    
        $result->execute(array($_GET['pseudo']));
    
        if($result->rowCount() > 0) echo 'Pseudo déjà pris.';
        else echo 'Pseudo disponible.';
      }
    }
    ?> 


    function verifPseudo(pseudo) {
      if(pseudo.length < 2)
        writediv('<span class="prie"><b>'+pseudo+' :</b> ce pseudo est trop court</span>');
      else if(pseudo.length > 30)
        writediv('<span class="prie"><b>'+pseudo+' :</b> ce pseudo est trop long</span>');
      else {
        var texte = file('../includes/verifpseudo.php?pseudo='+escape(pseudo));
    
        writediv('<span class="libre"><b>'+pseudo+' :</b>'+texte+'</span>');
      }
    }

    0
  4. ivan
     
    merci de ton aide je vien de tester mais ca ne veux pas afficher l'echo pouiur dir mot interdit

    donc je résume

    verifpseudo.php

    include("../includes/pdo.inc.php");
    
    $wrong = array('caca', 'pipi');
    
    if(isset($_GET['pseudo'])) {
      if(strlen($_GET['pseudo']) < 2) echo 'Pseudo trop court.';
      elseif(strlen($_GET['pseudo']) > 30) echo 'Pseudo trop long.';
      elseif(in_array($pseudo, $wrong)) echo 'Pseudo inapproprié.';
      else {
        $result = $pdo->prepare("
          SELECT membre_pseudo 
          FROM forum_membres 
          WHERE membre_pseudo = ?");
    
        $result->execute(array($_GET['pseudo']));
    
        if($result->rowCount() > 0) echo 'Pseudo déjà pris.';
        else echo 'Pseudo disponible.';
      }
    }
    ?> 


    inscription.js

    // on verifie si le pseudo est libre
    
    function verifPseudo(pseudo) {
      if(pseudo.length < 2)
        writediv('<span class="prie"><b>'+pseudo+' :</b> ce pseudo est trop court</span>');
      else if(pseudo.length > 30)
        writediv('<span class="prie"><b>'+pseudo+' :</b> ce pseudo est trop long</span>');
      else {
        var texte = file('../includes/verifpseudo.php?pseudo='+escape(pseudo));
    
        writediv('<span class="libre"><b>'+pseudo+' :</b>'+texte+'</span>');
      }
    }
    
    


    ca ne veux pas afficher la phrase qd je met caca pipi
    0
    1. JooS Messages postés 2705 Statut Membre 228
       
      Remplace $pseudo par $_GET['pseudo'].
      0
    2. JooS Messages postés 2705 Statut Membre 228
       
      Ou encore mieux :
      elseif(in_array(strtolower($_GET['pseudo']), $wrong)) 
        echo 'Pseudo inapproprié.';
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ivan
     
    merci je viens retenter ça ne marches plus qd je tape un pseudo sur mon imput

    dc voilà mon bout de formulaire

    	  <div class="inscription parente">
    	  <div class="inscription1">Nom d'utilisateur :*</div>
    	  <div class="inscription2"><input type="text" name="pseudo" id="pseudo" onKeyUp="verifPseudo(this.value)" value="<?php echo savedInputValue("pseudo"); ?>" /></div>
    	  <div class="inscription3"><span class="boxVerif" id="pseudobox"></span>Caractères autorisés : lettres, chiffres, tiret, point</div>
    	  <div class="inscription4"><img src="../design/<?php echo getDesignName(); ?>/images/inscription/no.png"/></div>
    	  </div>
    


    là j'amis sur l cadre inscription3 : Caractères autorisés : lettres, chiffres, tiret, point et le cadre inscription une image rouge no.png

    et quand il vas mettre un pseudo libre ça doit effacer Caractères autorisés : lettres, chiffres, tiret, point pour remplacer par le pseudo qui a choisit et l'image no.png doit se mettre yes.png

    voilà mon lien de la page

    http://leprojet.legtux.org/membre-inscription.html

    donc le cadre

    il faut remplacer Caractères autorisés : lettres, chiffres, tiret, point par le pseudo qui ayua ms dans l'imput

    et l'image no.png remplacera par l'image yes.png

    merci d ta patiente
    0
    1. JooS Messages postés 2705 Statut Membre 228
       
      Ben la c'est une tout autre question, et apparemment, tu n'inclus même pas les fichiers Javascript qu'il faut (file, writediv ...).
      0
    2. ivan
       
      si j'ai bien mis le code et j'include ben les page a chaque dossier

      je ne voit pas pkk ca ne marche pas qd on tape un mot interdi il ne met pas mon echo
      0
    3. JooS Messages postés 2705 Statut Membre 228
       
      Est ce que ton code fonctionnait au moins avant ?

      Je suis en train de parcourir le code source de ta page, et je ne vois toujours pas les fonctions Javascript "file", "writediv" ... !
      0
    4. ivan
       
      oui là ça marche bien qd on tape un mot il met bien pseudo libre ou pris donc là c'est bon

      mais c'est quand on a ajouté le code pour les mot interdit là ca ne marche pas

      j'ai que cette page

      inscription.php

      verifpeudo.php

      inscription.js

      j'ai que 3 page

      peut être il faut rajouter une nouvelle page
      0
  7. ivan
     
    là j'ai refait de a à z

    // on verifie si le pseudo est libre
    
    function writediv(texte)
         {
         document.getElementById('pseudobox').innerHTML = texte;
         }
     
    function verifPseudo(pseudo) {
      if(pseudo.length < 2)
        writediv('<span class="prie"><b>'+pseudo+' :</b> ce pseudo est trop court</span>');
      else if(pseudo.length > 30)
        writediv('<span class="prie"><b>'+pseudo+' :</b> ce pseudo est trop long</span>');
      else {
        var texte = file('../includes/verifpseudo.php?pseudo='+escape(pseudo));
    
        writediv('<span class="libre"><b>'+pseudo+' :</b>'+texte+'</span>');
      }
    } 
    function file(fichier)
         {
         if(window.XMLHttpRequest) // FIREFOX
              xhr_object = new XMLHttpRequest();
         else if(window.ActiveXObject) // IE
              xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
         else
              return(false);
         xhr_object.open("GET", fichier, false);
         xhr_object.send(null);
         if(xhr_object.readyState == 4) return(xhr_object.responseText);
         else return(false);
         }
    


    et

    <?php
    include("../includes/pdo.inc.php");
    
    $wrong = array('caca', 'pipi');
    
    if(isset($_GET['pseudo'])) {
      if(strlen($_GET['pseudo']) < 2) echo 'Pseudo trop court.';
      elseif(strlen($_GET['pseudo']) > 30) echo 'Pseudo trop long.';
      elseif(in_array($pseudo, $wrong)) echo 'Pseudo inapproprié.';
      else {
        $result = $pdo->prepare("
          SELECT membre_pseudo 
          FROM forum_membres 
          WHERE membre_pseudo = ?");
    
        $result->execute(array($_GET['pseudo']));
    
        if($result->rowCount() > 0) echo 'Pseudo déjà pris.';
        else echo 'Pseudo disponible.';
      }
    }
    ?>


    là si je tape caca ou pipi il ne met pas mon echo 'Pseudo inapproprié.';

    merci de ton aide
    0
  8. DebianCoq Messages postés 27 Statut Membre 6
     
    Essayer comme ceci...


    elseif(in_array($_GET['pseudo'], $wrong)) echo 'Pseudo inapproprié.';
    0
  9. ivan
     
    merci ca marche

    mainenant il faut que je trouves la liste des mot interdit

    es ce que ta un lien ou il y a tout les mot

    sinon je vais chercher
    0
    1. DebianCoq Messages postés 27 Statut Membre 6
       
      Non désolé, je n' ai jamais utilisé ce genre de chose.
      Je préfère laisser la liberté à mes visiteurs de choisir un pseudo qui reflètera leurs personnalités...
      Et si ça doit être un crétin, je préfère que les autres membres le sachent...
      0
  10. ivan
     
    merci d'avance pour ton aide

    si je supprime les mots interdit j'ai qu'a juste mettre un commentaire sur la ligne array

    // aray etc....

    et sinon pour les carrateres speciaux

    ne pas mettre des _ ou- etc..

    je met un autre array avec les tirets etc...
    0