Les classes Javascript et PHP pour valider e-mail un'indirizzo

Reprenant le message Valider email Javascript et PHP , voici une classe de Nice JavaScript capable de vérifier et vérifier les adresses e-mail. Son utilisation est très simple, même si elle est un contrôle côté client, et facile à contourner, vous pouvez simplement désactiver le Javascript (proposer pétition contre cette possibilité ;) désormais tous les navigateurs permettent d'échapper à JavaScript, puis tous les contrôles associés aux - dans le court terme n'est pas quelque chose sur Internet, voir l'Ajax : O ).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/ *
** @ Nom: ckmail.js
** Description @: vérification de la syntaxe email
** @ Auteur: undo = =
** @ Auteur-Web: http://www.undolog.com
** @ Auteur-mail: @ g.fazioli undolog.com - g (dot) Fazioli (at) undolog (dot) com
** @ Date: 21/09/2006 21:24
** @ Ver: 1.0
* /

{ oCKMail = {var
, __release: «1.0»,
, __filter: / ^ (.. [\ w-]+(?: \ [\ w-]+)*)@((?:[ \ w-] + \) * \ w [\ w-] {0, 66}) \ ([az] {2,6} (:.?. \ [AZ] {2 })?)$/ i,
, __username: "",
, __domain: "",
, __ext: "",

/ / A FAIRE
( e ) { GetUserName: function (e) {
this .__init ( e ) ) return ( this .__username ) ; if (this. __init (e)) return (__username this.);
false ) ; retour (false);
},

/ / A FAIRE
( e ) { GetDomain: function (e) {
this .__init ( e ) ) return ( this .__domain ) ; if (this. __init (e)) return (this. __domain);
false ) ; retour (false);
},

/ / A FAIRE
( e ) { GetExtension: function (e) {
this .__init ( e ) ) return ( this .__ext ) ; if (this. __init (e)) return (this. __ext);
false ) ; retour (false);
},

/ / A FAIRE
( e ) { __init: function (e) {
! this .__filter. test ( e ) ) return ( false ) ; si le retour (faux) (ce test __filter (e)!..);
e. split ( "@" ) ; e. var t = split ("@");
t [ 0 ] ; ce __username t = [0].;
t [ 1 ] ; ce __domain = t [1].;
.__domain. split ( "." ) ; t = présent. __domain. diviser (".");
t [ 1 ] ; ce __ext = t [1].;
true ) ; retour (true);
},

/ / A FAIRE
/ / Synopsis
/ / Vérifier (et extlist, domainlist);
/ / Exécute une série de contrôles standard d'un e-mail.
/ / Extlist - Vous pouvez passer un second paramètre optionnel qui correspond à un tableau d'extensions qui
/ / Est-autorisés ou exclus (inclure / exclure l'extension) selon la première valeur dans le tableau, tous les
/ / Erreur d'autres seront considérés.
/ / EG. [C'est vrai, "fr", "com"] pass (inclut la liste)
/ / EG. [Faux, "fr", "com"] ne passe pas (exclure la liste)
/ / Si -1 n'est pas pris en compte
/ / DomainList - Vous pouvez passer un troisième paramètre optionnel qui correspond à un tableau des domaines qui
/ / Est-autorisés ou exclus (inclure / exclure du domaine) en fonction de la première valeur dans le tableau, tous les
/ / Erreur d'autres seront considérés.
/ / EG. [C'est vrai, "alice.it", "mac.com"] pass (inclut la liste)
/ / EG. [Faux, "alice.it", "mac.com"] ne passe pas (exclure la liste)
/ / Si -1 n'est pas pris en compte
/ /
( e ) { vérifier: function (e) {
this .__init ( e ) ) { if (this. __init (e)) {
/ / Check Check domainExt array
arguments. length > 1 ) { if (longueur arguments.> 1) {
typeof ( arguments [ 1 ] ) == "object" ) { if (typeof (arguments [1]) == "object") {
arguments [ 1 ] [ 0 ] ) { // include list if (arguments [1] [0]) {/ / inclure la liste
var i = 0 ; i < arguments [ 1 ] . length ; i ++ ) { for (var i = 0; i <arguments [1] de longueur;. i + +) {
this .__ext == arguments [ 1 ] [ i ] . toLowerCase ( ) ) return ( true ) ; if (this. __ext == arguments [1] [i] toLowerCase ().) return (true);
}
{ // exclude list Else {} / / liste d'exclusion
var i = 0 ; i < arguments [ 1 ] . length ; i ++ ) { for (var i = 0; i <arguments [1] de longueur;. i + +) {
this .__ext == arguments [ 1 ] [ i ] . toLowerCase ( ) ) return ( false ) ; if (this. __ext == arguments [1] [i] toLowerCase ().) return (false);
}
true ) ; retour (true);
}
false ) ; retour (false);
}
}
/ / Check Check domainName array
arguments. length > 2 ) { if (arguments. longueur> 2) {
typeof ( arguments [ 2 ] ) == "object" ) { if (typeof (arguments [2]) == "object") {
arguments [ 2 ] [ 0 ] ) { // include list if (arguments [2] [0]) {/ / inclure la liste
var i = 1 ; i < arguments [ 2 ] . length ; i ++ ) { for (var i = 1, i <arguments [2] de longueur;. i + +) {
this .__domain == arguments [ 2 ] [ i ] . toLowerCase ( ) ) return ( true ) ; if (this. __domain == arguments [2] [i] toLowerCase ().) return (true);
}
{ // exclude list Else {} / / liste d'exclusion

var i = 1 ; i < arguments [ 2 ] . length ; i ++ ) { for (var i = 1, i <arguments [2] de longueur;. i + +) {
this .__domain == arguments [ 2 ] [ i ] . toLowerCase ( ) ) return ( false ) ; if (this. __domain == arguments [2] [i] toLowerCase ().) return (false);
}
true ) ; retour (true);
}
false ) ; retour (false);
}
}
true ) ; // email correct retour (true) / / email correcte
}
false ) ; // error retour (false) / / erreur
}
};

L'objet oCKMail fournit plusieurs méthodes pour réaliser une série parallèle de contrôles sur l'adresse, telles que l'extension, domaine, etc ...

Pour être vraiment sûr si vous avez PHP, vous pouvez ajouter une commande supplémentaire et efficace avant d'exécuter la commande mail() . Voici la classe PHP utile à cette fin:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/ *
** @ Nom: cckmail.php
** Description @: vérification de la syntaxe email
** @ Auteur: undo = =
** @ Auteur-Web: http://www.undolog.com
** @ Auteur-mail: @ g.fazioli undolog.com - g (dot) Fazioli (at) undolog (dot) com
** @ Date: 21/09/2006 23:58
** @ Ver: 1.0
**
** Exemples
**
** / / Vérifier une adresse EXCLUANT le domaine e-mail "e-lementi.com" et "mac.com"
**
** $ OCKMail CCKMail = new ();
** $ OCKMail-> check ($ email, null, array (false, "e-lementi.com", "mac.com"));
**
** / / Vérifier l'adresse, y compris e-mail de domaine "e-lementi.com" et "mac.com"
**
** $ OCKMail CCKMail = new ();
** $ OCKMail-> check ($ email, null, array (true, "e-lementi.com", "mac.com"));
**
** / / Vérifier une adresse HORS ces e-mails avec un "net", "fr", "org"
**
** $ OCKMail CCKMail = new ();
** $ OCKMail-> check ($ email, array (false, "net", "fr", "org"));
**
** HISTOIRE / Change Log
**
* /

! function_exists ( 'checkdnsrr' ) ) { if ( function_exists ('checkdnsrr')) ​​{
( $host , $type = '' ) { Fonction checkdnsrr ($ host, $ type ='') {
! empty ( $host ) ) { if ( vide ($ host)) {
$type == '' ) $type = "MX" ; if ($ type =='') $ type = "MX";
( "nslookup -type= $type $host " , $output ) ; @ exec ("nslookup-type = $ type $ host", $ output);
list ( $k , $line ) = each ( $output ) ) { while ( liste (k $, $ line) = Chaque ($ output)) {
eregi ( "^ $host " , $line ) ) { if ( eregi ("^ $ host", $ ligne)) {
; return true;
}
}
; return false;
}
}
}
/ /
{CCKMail classe
= "1.1" ; var $ __release = "1.1";
= false ; var $ status = false;
; var $ username;
; var $ domaine;
; var $ ext;
/ /
Fonction CCKMail () {}
/ /
$e ) { Fonction _test ($ s) {
status = false ; $ This -> statut = false;
'/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/' ; $ P ='/^.+ \ @ (\ [?) [A-zA-Z0-9 \ - \] + \ ([a-zA-Z] {2,4} |.. [0-9] {1,3}) (\ ]?)$/';
preg_match ( $p , $e ) ) ) { if (( preg_match ($ p, $ e))) {
explode ( "@" , $e ) ; $ T = explosent ("@", $ s);
username = strtolower ( $t [ 0 ] ) ; $ This -> username = strtolower ($ t [0]);
domain = strtolower ( $t [ 1 ] ) ; $ This -> domain = strtolower ($ t [1]);
explode ( "." , $this -> domain ) ; $ T = explosent ('.', $ this - domaine>);
ext = strtolower ( $t [ 1 ] ) ; $ This -> ext = strtolower ($ t [1]);
/ /
checkdnsrr ( $this -> domain . '.' , 'MX' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> Domaine ..'', 'MX')) $ this -> statut = true;
checkdnsrr ( $this -> domain . '.' , 'A' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> Domaine ..'', 'A')) $ this -> status = true;
checkdnsrr ( $this -> domain . '.' , 'CNAME' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> Domaine ..'', 'CNAME')) $ this -> statut = true;
}
}
/ /
$m , $e = NULL , $d = NULL ) { vérifier le fonctionnement ($ m, $ e = NULL, $ d = NULL) {
_test ( $m ) ; $ This -> _test (M $);
$this -> status ) { if ($ this -> statut) {
/ / Check Check domainExt array
! is_null ( $e ) ) { if ( is_null ($ e)) {
$e [ 0 ] ) { // include list if ($ e [0]) {/ / inclure la liste
$i = 1 ; $i < sizeof ( $e ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ s); $ i + +) {
$this -> ext == strtolower ( $e [ $i ] ) ) return ( true ) ; if ($ this -> ext == strtolower ($ e [$ i])) return (true);
}
{ // exclude list Else {} / / liste d'exclusion
$i = 1 ; $i < sizeof ( $e ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ s); $ i + +) {
$this -> ext == strtolower ( $e [ $i ] ) ) return ( false ) ; if ($ this -> ext == strtolower ($ e [$ i])) return (false);
}
true ) ; retour (true);
}
false ) ; retour (false);
}
/ / Check Check domainName array
! is_null ( $d ) ) { if ( is_null ($ d)) {
$d [ 0 ] ) { // include list if ($ d [0]) {/ / inclure la liste
$i = 1 ; $i < sizeof ( $d ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ d); $ i + +) {
$this -> domain == strtolower ( $d [ $i ] ) ) return ( true ) ; if ($ this -> de domaine == strtolower ($ d [$ i])) return (true);
}
{ // exclude list Else {} / / liste d'exclusion
$i = 1 ; $i < sizeof ( $d ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ d); $ i + +) {
$this -> domain == strtolower ( $d [ $i ] ) ) return ( false ) ; if ($ this -> de domaine == strtolower ($ d [$ i])) return (false);
}
true ) ; retour (true);
}
false ) ; retour (false);
}
true ) ; retour (true);
}
false ) ; retour (false);
}
}
?>

Qu'est-ce ineteressante est la capacité de cette classe pour se connecter aux serveurs MX (voir checkdnsrr() ) pour vérifier la présence du domaine. Ainsi, en plus d'effectuer une vérification de la syntaxe de l'e-mail fonctionne un domaine de ping réel avant. Nous pouvons dire que cette méthode est de 80% ...

One Response to "Javascript et PHP Classes un'indirizzo pour valider l'e-mail"

  1. 30 juin 2009 Undolog.com »Wordpress: étape par étape comment créer leur propre login :

    [...] Vous pouvez également entrer un contrôle supplémentaire sur le côté serveur / php. Voir dans les classes ce qui concerne la présente Javascript et PHP pour valider e-mail un'indirizzo TEXTE CLAIR [...]

Laisser un commentaire

XHTML TAG PERMIS: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> CODE D'INSERTION:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL 


Arrêtez SOPA