Mot interdi pour inscription

Fermé
ivan - 28 janv. 2014 à 23:14
 ivan - 30 janv. 2014 à 21:09
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

JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 28/01/2014 à 23:55
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
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
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
29 janv. 2014 à 14:58
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
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
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 29/01/2014 à 15:49
Remplace $pseudo par $_GET['pseudo'].
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 29/01/2014 à 15:53
Ou encore mieux :
elseif(in_array(strtolower($_GET['pseudo']), $wrong)) 
  echo 'Pseudo inapproprié.';
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
29 janv. 2014 à 18:00
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
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
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
29 janv. 2014 à 18:56
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
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
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
DebianCoq Messages postés 26 Date d'inscription lundi 20 janvier 2014 Statut Membre Dernière intervention 24 février 2016 5
30 janv. 2014 à 16:45
Essayer comme ceci...


elseif(in_array($_GET['pseudo'], $wrong)) echo 'Pseudo inapproprié.';
0
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
DebianCoq Messages postés 26 Date d'inscription lundi 20 janvier 2014 Statut Membre Dernière intervention 24 février 2016 5
Modifié par DebianCoq le 30/01/2014 à 20:48
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
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