Interdire les tabulations dans un formulaire

Résolu/Fermé
TheBleedz - Modifié par TheBleedz le 23/09/2011 à 22:27
 Utilisateur anonyme - 24 sept. 2011 à 12:44
Bonjour,
J'ai écris un script qui ne fonctionne pas, forcement. Pour qu'il interdise les tabulations dans le formulaire ! Je sais vraiment pas ou est mon erreur...
 if(isset($_POST['publication'])) 
 { 
  $publi = htmlspecialchars($_POST['publication']); 
  if(!empty($publi)) 
  { 
   if (preg_match("#^[\t]#", $publi)) 
   { 
    echo 'vrai'; 
   } 
   else 
   { 
    echo 'Contien une tabulation'; 
   } 
  } 
  else 
  { 
   echo 'Contient rien'; 
  } 
 } 
 else 
 { 
 }


Merci d'avance et bonne soirée a vous, je cherche de mon coter en attendant.



7 réponses

salut,

Ca existe des tabulations dans un formulaire ??
Perso c'est la premiere fois que j'en entends parler

Pouvez vous me dire comment vous faites ?

si tu veux supprimer des espaces remplace le deuxieme if par celui-ci:

if (preg_match("# #", $publi))
0
Hello,

Je pense que le problème se situe dans ton expression régulière: #^[\t]#"

Elle repère uniquement les tabulations situées au tout début de ta variable à cause du ^.

Du coup, si tu mets n'importe quel caractère avant, elle ne match pas.
0
Merci de vos réponse mais aucune de vos proposition mon aider toujours le même problème...
0
Les espaces ça marche mais comment interdire les Enter ?
0

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

Posez votre question
Utilisateur anonyme
23 sept. 2011 à 23:18
les Enter c'est \n.

Puis-je connaitre dans quel contexte tu cherches a faire cela? (comme ca on pourra mieux t'aider).
0
Bah c'est pour publier des commentaires sur des annonces. Mais si l'utilisateur s'amuse a faire Enter 50 fois ca va pas le faire sur la page =/
Merci de la petite info mais j'arrive pas a l'utilisé.
preg_match("#^ \n$#", $publi)

Bien comme ça ? Car faut mettre l'espace avant aussi ou après je sais pas trop xD Un peu perdu...

Merci de ton aide précieuse !
0
Utilisateur anonyme
23 sept. 2011 à 23:26
essaie comme ceci:
preg_match("#\n#", $publi);
c'est rare de voir les gens mettre des enter dans champs ( quoique faudrait peut etre tester avec les balises <textarea>).
0
Ca marche pour les Enter et j'ai mis pour l'espace de cette manière ci :
preg_match("#\n| #", $publi)
C'est correcte ? En tout cas ca a l'air de fonctionner.
Grand merci a toi de m'avoir éclairer sur ce sujet :)
0
j'ai trouvé une autre alternative a ton probleme ...
Autoriser seulement l'alphanumerique:
preg_match("#[^a-z0-9]+#i",$publi); // retourne 1 si y'a un caractere non alphanumerique
0
Merci ca marche du thonaire ! Bonne journée a toi ;) désoler d'avoir répondu plusieurs heures après.
0
Utilisateur anonyme
24 sept. 2011 à 12:44
pas grave
0