[php] fonction qui marche pas

Résolu
Maxg59 Messages postés 275 Statut Membre -  
StreM Messages postés 515 Statut Membre -
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 Statut Membre 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 Statut Membre 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