Interdire les tabulations dans un formulaire

Résolu
TheBleedz -  
 Utilisateur anonyme -
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

  1. Utilisateur anonyme
     
    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
  2. maniax
     
    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
  3. TheBleedz
     
    Merci de vos réponse mais aucune de vos proposition mon aider toujours le même problème...
    0
  4. TheBleedz
     
    Les espaces ça marche mais comment interdire les Enter ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    les Enter c'est \n.

    Puis-je connaitre dans quel contexte tu cherches a faire cela? (comme ca on pourra mieux t'aider).
    0
  7. TheBleedz
     
    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
    1. Utilisateur anonyme
       
      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
    2. TheBleedz
       
      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
  8. Utilisateur anonyme
     
    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
    1. TheBleedz
       
      Merci ca marche du thonaire ! Bonne journée a toi ;) désoler d'avoir répondu plusieurs heures après.
      0
    2. Utilisateur anonyme
       
      pas grave
      0