Page 1 sur 1
[..] Vérifier si la var est email et...
Posté : ven. 14 nov. 2008 11:49
par ethneldryt
Bonjour, je voudrai savoir comment verifier si une var est au format email, par exemple :
$mail = "
testid@domaine.ext"
ici c'est bon mais si
$mail = "toto.dom.ext"
ici ca affiche une message box comem quoi ce n'est pas un email.
Je voudrai aussi verifier si une var a un minimum de 5 caractere,
si il y en a moin, afficher une msgbox .
Merci
Re: [..]Verifier si la var est email et...
Posté : ven. 14 nov. 2008 12:00
par Yogui
Pour avoir ce résultat j'utiliserai la fonction StringinStr comme ceci
Code : Tout sélectionner
$email = "TOTO@TITI.com"
$result = StringInStr($email, "@")
if @error = 1 Then
MsgBox(16,"Erreur","Email non valide")
Else
MsgBox(64,"OK","Email Valide")
EndIf
Re: [..] Vérifier si la var est email et...
Posté : ven. 14 nov. 2008 12:05
par Yogui
Pour la seconde partie de votre demande j'utiliserai la fonction : StringLen
Code : Tout sélectionner
$email = "TOTO@TITI.com"
$len = StringLen($email)
if $len < 5 Then
MsgBox(16,"Erreur","Pas assez de charactères")
Else
MsgBox(64,'ok','nombre de charactères ok')
EndIf
Re: [..] Vérifier si la var est email et...
Posté : ven. 14 nov. 2008 13:43
par ethneldryt
Merci , votre second code marche.
Mais le premier ne marche pas, il indique toujour que l'email est valide avec ou sans le "@".
Re: [..] Vérifier si la var est email et...
Posté : ven. 14 nov. 2008 14:40
par Yogui
Code : Tout sélectionner
$email = "TO@TI"
$result = StringInStr($email, "@")
if $result = 0 Then
MsgBox(16,"Erreur","Email non valide")
Else
MsgBox(64,"OK","Email Valide")
EndIf
désolé j'ai copié un test avec @error celui ci fonctionne
Re: [..] Vérifier si la var est email et...
Posté : ven. 14 nov. 2008 16:39
par Tlem
Pour contrôler une adresse email, je vous conseil ceci :
http://www.autoitscript.fr/forum/viewto ... 412#p11412
Re: [..] Vérifier si la var est email et...
Posté : ven. 14 nov. 2008 20:08
par moutelous
Bonjour,
La proposition de Tlem couvre en effet un bon nombre de cas ..... mais pas tous ...
Typiquement :
"Fred Bloggs"@exemple.com devrait matcher ce qui n'est pas le cas avec le pattern proposé.
Abc..123@exemple.com ne devrait pas matcher et pourtant avec le pattern proposé .....
Voir le lien suivant :
http://fr.wikipedia.org/wiki/Adresse_électronique
A+
Re: [..] Vérifier si la var est email et...
Posté : ven. 14 nov. 2008 22:11
par Tlem
J'ai édité mon message pour modifier le pattern.
Abc..123@exemple.com est bien exclus, mais "Fred Bloggs"@exemple.com n'est toujours pas pris en compte (c'est une adresse d'un genre que je n'ai jamais vu !).
Re: [..] Vérifier si la var est email et...
Posté : ven. 14 nov. 2008 22:18
par moutelous
Re ...
Tlem a écrit :"Fred Bloggs"@exemple.com n'est toujours pas pris en compte (c'est une adresse d'un genre que je n'ai jamais vu !)
Effectivement quand on lit le RFC 3696 on est surpris du genre d'adresse valable que l'on peut trouver !
A+
Re: [..] Vérifier si la var est email et...
Posté : ven. 14 nov. 2008 22:27
par Tlem
moutelous a écrit :quand on lit le RFC 3696
Houlaaaa bien trop ennuyeux.

Re: [..] Vérifier si la var est email et...
Posté : sam. 15 nov. 2008 00:04
par moutelous
Re ..
Code : Tout sélectionner
$adresse='Abc..123@exemple.com'
$Validite = StringRegExp($adresse,"^((""[A-Z]?[a-z0-9!@#$%&'*\t +/=?^_`{|}~\\.-]*)([A-Z]?[a-z0-9!#$%&'*+/=?^_`{|}~-]*"")@|^[A-Z]?[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-Z]?[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@)(?:[\w-]+\.)+[a-zA-Z]{2,7}$")
If $Validite=1 then
msgbox(0, "Adresse valide :","OUI")
Else
msgbox(0, "Adresse valide :","NON")
EndIf
Pattern un peu longuet soit mais il valide les types d'adresses suivantes :
Abc@exemple.com
Abc.123@exemple.com
user+mailbox/department=shipping@exemple.com
!#$%&'*+-/=?^_`.{|}~@exemple.com
"Abc@def"@exemple.com
"Fred Bloggs"@exemple.com
"Joe.\\Blow"@exemple.com
Et rejette les types d'adresses suivantes:
Abc.exemple.com
Abc.@exemple.com
Abc..123@exemple.com
A+