[php] fonction qui marche pas

Résolu
Maxg59 Messages postés 275 Date d'inscription   Statut Membre Dernière intervention   -  
StreM Messages postés 515 Date d'inscription   Statut Membre Dernière intervention   -
Salut a tous !!!!
je voudrais empecher les caracteres speciaux dans le champ pseudo et mot de passe lors de l'inscription sur mon site.
function detect_parasite($pseudo)
{
        //Caractères à enlever
	$puncts=array(	".",
			";",
			",",
			":",
			"!",
			"?",
			"/",
			"&",
			'\"',
			"\'",
			"(",
			")",
			"»",
			"« ",
			"\n",
			"\r"
			);
 
	foreach($puncts as $punct)
	{
                if ( strpos ($pseudo, $punct) )
		        return True;
	}
	return False;
}
//--------------------------------------------------
//verif pseudo
 if ( detect_parasite($pseudo) )
{
               //Action si mauvaise ponctuation
echo "Votre pseudo contient des caractéres spéciaux";
echo "<a href='inscription.htm'>retour</a>";
}
elseif ( detect_parasite($passe) )
{
echo "Votre mot de passe ne doit pas contenir de caracteres speciaux";
echo "<a href='inscription.htm'>retour</a>";
}

Il n'y a pas d'erreur mais quand je met un de ces caractéres dans la variable $passe il ne le detecte pas ...
A voir également:

2 réponses

dedale82 Messages postés 403 Date d'inscription   Statut Membre Dernière intervention   283
 
autant pour moi, j'ai cru voir une erreur, j'efface ce que j'ai ecrit
désolé
0
StreM Messages postés 515 Date d'inscription   Statut Membre Dernière intervention   124
 
Penche toi plutot vers les expressions regulieres (ereg en php) pour n'autoriser que les caracteres alphanumerique plutot que d'interdire les caracteres speciaux...
GOOGLE :
http://www.aidejavascript.com/article64.html
http://www.editeurjavascript.com/forums/topic-17193-4-9.html
http://www.phpinfo.net/regex/index.html :
$is_alpha = ereg("^[0-9A-Za-z]+$", $chaine);
  // ou
$is_alpha = ereg("^[[:alnum:]]+$", $chaine);

0