[php] eviter les caractéres spéciaux

Maxg59 Messages postés 275 Date d'inscription   Statut Membre Dernière intervention   -  
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   -
Salut a tous !!!
Je voudrais savoir comment faire pour empécher les caractéres spéciaux en PHP???????
Merci !!!!!
A voir également:

30 réponses

kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Ah je crois comprendre, tu t'es emmelé les pinceaux parce que j'utilise le mot $pseudo dans la definition et dans l'appel de la fonction.

Dans l'exemple que tu viens de mettre, j'utilise $pseudo, c'est l'argument à passer à la fonction.

Après tu pourras passer n'importe quelle variable lors de l'appel de ta fonction:
detect_parasite($ostreiculture);
detect_parasite($muesli)
detect_parasite($yahourt_en_pate_a_macher)

J'ai réutilisé $pseudo comme une variable lambda....
0
Maxg59 Messages postés 275 Date d'inscription   Statut Membre Dernière intervention   27
 
Donc ça pose pas de problémes si j'utilise
$vars=array($pseudo , $passe, $passe2);
foreach ($vars as $one_var)
{
          if (detect_parasite($one_var)
          {
                    //Action si mauvaise ponctuation
          }
}

Sans chager $pseudo dans la fonction ???
Si j'ai bien compri... Lorseque j'apel la fontion je change $pseudo par se que je veu ????
0
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Voilà, à la place tu peux mettre n'importe quelle variable qui contient un caractère ou une chaine de caractère...
0
Maxg59 Messages postés 275 Date d'inscription   Statut Membre Dernière intervention   27
 
désolé mais ça marche pas ....
voici mon code :
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>";
}

ça marche bien pour le pseudo mais pas pour le $passe ....
ça a marcher une fois ...
désolé je sais que je suis chiant !!!!!!!
0
Maxg59 Messages postés 275 Date d'inscription   Statut Membre Dernière intervention   27
 
SVP repondez moi vite je suis bloqué !!!!!SVP !!
0

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

Posez votre question
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Remplace
elseif ( detect_parasite($passe) )
par
if ( detect_parasite($passe) )

Sinon, s'il trouve un caractère spécial pour $pseudo, il ne fera pas le test pour $pass....
0
Maxg59 Messages postés 275 Date d'inscription   Statut Membre Dernière intervention   27
 
OK merci ça marche !!!
Mais lorseque il detecte le caractere interdit dans le pseudo il continu ...
Tu n'as pas une commande pour finir le script ???
comme ça je fait
if ( detect_parasite($passe) )
{
echo"blablablabla";
==>finir le script
}
0
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Voui, tu as die() ou exit()
http://fr.php.net/manual/fr/function.exit.php
0
Maxg59 Messages postés 275 Date d'inscription   Statut Membre Dernière intervention   27
 
Merci merci merci merci !!!!!
0
vyko
 
Bonjour!
Ce post est peut être un peu vieux mais lorsque je teste ce script, il ne me repère pas les caractères spéciaux lorsqu'ils sont placé en première position... Donc ma question est comment faire pour repérer le premier caractère de la chaine!?
J'espère que quelqu'un verra ce message ! Et merci pour ce script!
0
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Salut,

Comme ça:
$chaine = "je suis une chaine";
echo $chaine[0]; //affiche j
0
dedale82 Messages postés 403 Date d'inscription   Statut Membre Dernière intervention   283
 
-1