baulet Posté 29 Mai 2010 Partager Posté 29 Mai 2010 bonjour, dans un formulaire j'utilise eregi pour vérifier si les caractères entrés dans un textarea sont corrects. tout va bien, sauf quand on rédige 2 paragraphes. la condition n'est alors plus remplie. il semble que le CR soit compté comme un caractère a part entière? que faut il mettre pour autoriser le CR? sous windows, ne va t il pas y avoir aussi le LF? (line feed) if(eregi!("^([abcd...etc.,;:/\"]+[. ]?)+$",$_POST["message"])) (autoriser les lettres abcd... et la ponctuation, suivie d'un . ou d'un espace) merci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
baulet Posté 29 Mai 2010 Auteur Partager Posté 29 Mai 2010 peut être aussi qu'il faut plutôt interdire quelques caractères que d'en autoriser plein? Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 29 Mai 2010 Partager Posté 29 Mai 2010 Ben oui, CR et LF sont des caractères (presque) comme les autres, en tous cas si tu ne les prévois pas dans ta regex, ils ne peuvent pas être autorisés. Premier conseil: utilise preg_* au lieu de ereg*, ces dernières étant considérées comme obsolètes. Une fois que tu utilises preg_*, tu peux utiliser les flags s et m pour contrôler la façon dont les CR et LF sont considérés (i.e. si "." les autorise aussi et/ou si ^ et $ en tiennent compte ou pas). Tout ça est expliqué ici:/>http://uk3.php.net/manual/en/reference.pcre.pattern.modifiers.php Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
baulet Posté 30 Mai 2010 Auteur Partager Posté 30 Mai 2010 merci Jacques, je crois que j'ai atteint ma limite en php ! je vais suivre ton conseil et potasser preg .... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant