Problème regex

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 : Problème regex

Re: Problème regex

par xTG » 02 avr. 2012, 15:58

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.

Re: Problème regex

par fabrice88250 » 02 avr. 2012, 13:47

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

par moogli » 02 avr. 2012, 13:28

salut,

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


@+

Problème regex

par fabrice88250 » 02 avr. 2012, 13:19

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 "()[]{}<>\_=+*"