espace jamais retrouvé dans une chaine de caractère.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : espace jamais retrouvé dans une chaine de caractère.

Re: espace jamais retrouvé dans une chaine de caractère.

par JeanJean » 08 avr. 2010, 21:11

Problème résolue :
			foreach($caractere_interdit AS $traitement){
				if(strpos($pseudo,$traitement) !== false){
					$erreur .= '- Votre pseudo ne doit pas contenir d\'espace, ni de "," de ";", de ".", de "/" ou encore "?"';
					return $erreur;				
				}
			}
Merci a vous pour votre réactivité ! :D

Re: espace jamais retrouvé dans une chaine de caractère.

par stealth35 » 08 avr. 2010, 20:43

t'embête pas a faire une boucle, tu fais un str_replace avec un condition apres
if(str_replace($caractere_interdit, null, $pseudo) !== $pseudo)
{
   //erreur
}

Re: espace jamais retrouvé dans une chaine de caractère.

par devlop78 » 08 avr. 2010, 20:20

if(strpos($pseudo,$traitement) !== false){

Le mieux reste pour ce genre de choses de préciser les caractères autorisés et non interdits

Re: espace jamais retrouvé dans une chaine de caractère.

par Calimero » 08 avr. 2010, 20:01

J'ai oublié de précisé.

Quand j'ai mis === au lieu de == a aucun moment la fonction me retourne une erreur. :/
Oui, parcequ'à aucun moment on ne t'a recommandé de comparer la valeur de retour de strpos() à true, ça n'a pas de sens ;-)

strpos retourne un chiffre (pouvant être un 0) quand l'objet de la recherche a été trouvé, ou FALSE sinon. Tu peux t'insipirer des exemples de la page de manuel donnée en lien, qui présentent deux façons différentes d'utiliser strpos() correctement.

Re: espace jamais retrouvé dans une chaine de caractère.

par JeanJean » 08 avr. 2010, 19:53

J'ai oublié de précisé.

Quand j'ai mis === au lieu de == a aucun moment la fonction me retourne une erreur. :/

Re: espace jamais retrouvé dans une chaine de caractère.

par Calimero » 08 avr. 2010, 19:40

Hello,

La réponse est dans le manuel : http://fr.php.net/strpos (le gros rectangle rouge dans la page)

espace jamais retrouvé dans une chaine de caractère.

par JeanJean » 08 avr. 2010, 19:16

Bonsoir,

Dans un fonction vérification des pseudos des membres je souhaite inclure un script qui détecte si l'utilisateur à mentionné des caractères interdit dans son pseudo.

Le code ressemble à ça :
			$caractere_interdit[1] = ' ';
			$caractere_interdit[2] = ',';
			$caractere_interdit[3] = ';';
			$caractere_interdit[4] = '.';
			$caractere_interdit[5] = '/';
			$caractere_interdit[6] = '?';
			
			foreach($caractere_interdit AS $traitement){
				if(strpos($pseudo,$traitement) == true){
					$erreur .= '- Votre pseudo ne doit pas contenir d\'espace, ni de "," de ";", de ".", de "/" ou encore "?"';
					return $erreur;				
				}
			}
Il fonctionne à peu prêt.

Si je test avec ça : a a. Le message d'erreur est bien visible mais si jamais j'entre seulement un espace dans le champ pseudo, le pseudo est considéré comme bon.

Une idée ?