Votre question

Vérification d'une syntaxe pseudo en PHP

Tags :
  • Php
  • Echo
  • Programmation
Dernière réponse : dans Programmation
21 Janvier 2012 21:07:06

Salut à tous,

Voila mes problèmes :

J'ai créer une fonction pour vérifier la syntaxe d'un pseudo entré dans un formulaire :
Elle est sensé vérifier qu'il n'y à pas de caractères spéciaux.
  1. function verifSyntPseudo($pseudo)
  2. {
  3.         $Syntaxe='#^[\w.-]$#';
  4.         if(preg_match($Syntaxe,$pseudo))                
  5.         {
  6.                 echo "1";
  7.                 $resultat = "syntPseudoOk";
  8.                 return $resultat;
  9.         }
  10.         else
  11.         {
  12.                 echo "2 ";
  13.                 $resultat = "syntPseudoKo";
  14.                 return $resultat;
  15.         }
  16. }


Mon premier problème est que quoi qu'il arrive est que je suis toujours dans le deuxième cas donc que la syntaxe est mauvaise.

Le deuxième problème est que quand je l'appelle dans mon contrôleur :
  1. //Boucle qui vérifie si la syntaxe du pseudo est correct
  2. if(verifSyntPseudo($pseudoMail=="syntPseudoOk"))
  3. {
  4.     //boucle qui vérifie si le pseudo existe dans la BDD
  5.     if(mailExiste($pseudoMail)=="existe")
  6.     {
  7.          //On récupère le mail
  8.          $mail = recupMail($pseudoMail);
  9.          $nblignes = count($mail);
  10.          for($i=1; $i <= $nblignes; $i++)
  11.          {
  12.              envoiMail($mail[$i]['mail']);
  13.          }        
  14.      }
  15.      else
  16.      {
  17.          echo"Pseudo introuvable";
  18.      }
  19. }
  20. else
  21. {
  22.     echo"Veuillez saisir un pseudo valide";        
  23. }


Cela m'affiche toujours le cas "Pseudo introuvable" (sauf quand le pseudo existe) alors que si je fais un echo $verifSyntPseudo($pseudoMail); cela m'affiche syntPseudoKo donc je devrait être dans le cas ou la syntaxe est mauvaise donc cela devrais m'afficher "Veuillez saisir un pseudo valide" et non pas "Pseudo introuvable".
Donc en gros quoi qu'il arrive même si je met une syntaxe correct, $verifSyntPseudo($pseudoMail) est égale à syntPseudoKo est en plus je suis dans la mauvaise condition ...

edit:
J'ai résolu mon premier problème en faite dans ma condition
  1. if(verifSyntPseudo($pseudoMail)=="syntPseudoOk")
il manquait une parenthèse ...
Maintenant il reste mon problème ou je suis toujours dans la condition
  1. else
  2.      {
  3.          echo"Pseudo introuvable";
  4.      }


Pourtant j'ai éssayé avec la syntaxe '#^[\w.-]$#' et '#^[a-zA-Z0-9._-]$#' et les deux ne fonctionnent pas ...

Merci de m'aider!

Autres pages sur : verification syntaxe pseudo php

a c 232 L Programmation
22 Janvier 2012 00:57:11

Salut,

Plutôt que de comparer des retours de fonction avec des string, tu peux pas retourner true ou false avec tes fonctions ?
Comme ça tu fais juste
  1. if (verifSyntPseudo($pseudoMail))
  2. {
  3. // ...
  4. }
23 Janvier 2012 12:57:54

ahmeddu20-1 a dit :
Salut à tous,

Voila mes problèmes :

J'ai créer une fonction pour vérifier la syntaxe d'un pseudo entré dans un formulaire :
Elle est sensé vérifier qu'il n'y à pas de caractères spéciaux.
  1. function verifSyntPseudo($pseudo)
  2. {
  3.         $Syntaxe='#^[\w.-]$#';
  4.         if(preg_match($Syntaxe,$pseudo))                
  5.         {
  6.                 echo "1";
  7.                 $resultat = "syntPseudoOk";
  8.                 return $resultat;
  9.         }
  10.         else
  11.         {
  12.                 echo "2 ";
  13.                 $resultat = "syntPseudoKo";
  14.                 return $resultat;
  15.         }
  16. }


Mon premier problème est que quoi qu'il arrive est que je suis toujours dans le deuxième cas donc que la syntaxe est mauvaise.

Le deuxième problème est que quand je l'appelle dans mon contrôleur :
  1. //Boucle qui vérifie si la syntaxe du pseudo est correct
  2. if(verifSyntPseudo($pseudoMail=="syntPseudoOk"))
  3. {
  4.     //boucle qui vérifie si le pseudo existe dans la BDD
  5.     if(mailExiste($pseudoMail)=="existe")
  6.     {
  7.          //On récupère le mail
  8.          $mail = recupMail($pseudoMail);
  9.          $nblignes = count($mail);
  10.          for($i=1; $i <= $nblignes; $i++)
  11.          {
  12.              envoiMail($mail[$i]['mail']);
  13.          }        
  14.      }
  15.      else
  16.      {
  17.          echo"Pseudo introuvable";
  18.      }
  19. }
  20. else
  21. {
  22.     echo"Veuillez saisir un pseudo valide";        
  23. }


Cela m'affiche toujours le cas "Pseudo introuvable" (sauf quand le pseudo existe) alors que si je fais un echo $verifSyntPseudo($pseudoMail); cela m'affiche syntPseudoKo donc je devrait être dans le cas ou la syntaxe est mauvaise donc cela devrais m'afficher "Veuillez saisir un pseudo valide" et non pas "Pseudo introuvable".
Donc en gros quoi qu'il arrive même si je met une syntaxe correct, $verifSyntPseudo($pseudoMail) est égale à syntPseudoKo est en plus je suis dans la mauvaise condition ...

edit:
J'ai résolu mon premier problème en faite dans ma condition
  1. if(verifSyntPseudo($pseudoMail)=="syntPseudoOk")
il manquait une parenthèse ...
Maintenant il reste mon problème ou je suis toujours dans la condition
  1. else
  2.      {
  3.          echo"Pseudo introuvable";
  4.      }


Pourtant j'ai éssayé avec la syntaxe '#^[\w.-]$#' et '#^[a-zA-Z0-9._-]$#' et les deux ne fonctionnent pas ...

Merci de m'aider!

Salut
commence par tester ton expression avec preg_match($Syntaxe,$pseudo), pour etre sur de ton expression régulière.

exemple:

<?php
$chaine = "ma chaine de caractère";
$masque = '#^[\w.-]$#';
preg_match($masque, $chaine, $resultat);
//on affiche le resultat
print_r($resultat);
?>
a partir de la tu pourra visualiser le résultat de ta fonction .
$resultat[0] contiendra la chaine trouve ou rien
a+

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS