Page 1 sur 1

Problème regex

Posté : 02 avr. 2012, 13:19
par fabrice88250
Bonjour,
pour vérifier le champ de mon formulaire j'essai d'utiliser un regex mais mon soucis est que rien ne fonctionne.
Je voudrai que tout les caractères spéciaux (autre que du texte standard) soit refusés.
j'ai donc un champ 'message' ou l'internaute peut laisser un message et ce champs je le passe dans un regex afin de contrôler si il n'y a pas du code html dedans.
$message = mysql_real_escape_string($_POST['message']);

/* Vérification validité MESSAGE */
$message_regex = '/^[a-z0-9ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]*$/i';
if ( $message == "" OR !eregi( $message_regex , $message ) ) {
echo "<div align='center'><img src=\"../images/attention.gif\" alt=\"Attention\" /><br/>";
echo "Veuillez saisir un message. Les caractères spéciaux ne sont pas autorisés. <br/>
<a href=\"javascript:history.back()\">Retour</a></div>";
$erreur = true;
}

je veus que l'internaute puisse écrire un texte normalement c'est a dire avec des apostrophes, des virgules des points, majuscules, minuscules.... mais interdire tout autres types de caractères genre "()[]{}<>\_=+*"

Re: Problème regex

Posté : 02 avr. 2012, 13:28
par moogli
salut,

http://fr2.php.net/htmlentities devrait faire l'affaire ;)


@+

Re: Problème regex

Posté : 02 avr. 2012, 13:47
par fabrice88250
ok donc j'ai juste à faire ?
$message = mysql_real_escape_string(htmlentities ($_POST['message']));
Mais comment j’avertis l'internaute que son message n'est pas bon si il met du code html ?
Dans le cas de la regex on peut mettre une condition mais là je fait comment ?

Re: Problème regex

Posté : 02 avr. 2012, 15:58
par xTG
Regardes du côté de strip_tags() pour faire cette condition.
Après passage dans strip_tags si le nombre de caractère est différent c'est qu'elle a enlevé des balises HTML.