Vérification qu'un champ ne contient pas d'email

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 : Vérification qu'un champ ne contient pas d'email

par dmx-moteur » 24 déc. 2008, 15:36

Oui, effectivement, je ne veux pas valider la structure d'un e-mail mais éviter que des personnes saisissent dans le mauvais champ un e-mail (ce qui arrive fréquemment sur le formulaire de mon site...)

par guilt92 » 24 déc. 2008, 12:01

Je pense que son but n'est pas de valider des email mais de supprimer tout ce qui y ressemble, donc il peut se contenter du minimum ;)

par stopher » 24 déc. 2008, 12:00

Si tu dois utiliser les regexp,

celle ci n'est pas bonne

Code : Tout sélectionner

[^@]*
Utilises celle que je t'ai donné :

Code : Tout sélectionner

[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)
Sinon , tu vas valider des mails invalides ...

par dmx-moteur » 24 déc. 2008, 11:56

Merci à tous de vos réponses et de votre aide mais je dois absolument utiliser les regexp...

J'ai donc trouvé la solution suivante : [^@]*

par AB » 21 déc. 2008, 15:31

Bonjour,

Effectivement, s'il s'agissait de vérifier le bon formatage d'une adresse mail je conseillerais plutôt filter_var qui est plus simple à utiliser et qui prendra moins de ressources qu'une expression régulière. A compléter éventuellement par checkdnsrr().

Maintenant dans le problème mentionné ci-dessus, il va de soit que strpos() est le plus simple et le plus rapide. Quand des solutions aussi simples et efficaces existent, pas la peine de s'en priver :wink:

par niuxe » 20 déc. 2008, 23:04

Salut,

Exact, un strpos() suffit amplement. Néanmoins, si tu veux éviter les méandre d'une REGEX pour une adresse email complète, je peux te conseiller d'utiliser les filtres variables : filter_vars().

++

par stopher » 20 déc. 2008, 11:38

Salut ,

Pour tester la présence d'adresse mail , utilise preg_match() avec cette expression :

Code : Tout sélectionner

[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)
Cette fonction va te retourner le nombre d'adresses mail retrouvé dans le champ testé ...

par guilt92 » 19 déc. 2008, 18:36

Bonjour,

Si tu veux juste éviter l'@ il te suffit par exemple d'utiliser strpos() ... Si ca renvoi quelque chose différent de false ca veut dire que le textarea contient un @...

Apres avec les regexp tu pourrais tester quelque chose de plus complexe genre [email protected] mais si l'@ te suffit c'est pas la peine... Tu peux trouver le pattern sur google avec des mots cles genre "verification email expression regulieres" et faire l'inverse après...

Vérification qu'un champ ne contient pas d'email

par dmx-moteur » 19 déc. 2008, 18:29

Je souhaiterais verifier qu'un textarea de formulaire ne contient pas d'email... Il peut contenir n'importe quelle lettre ou chiffre mais pas de "@". Comment faire avec les regexp ?