Javascript und PHP-Klassen, um zu überprüfen e-mail un'indirizzo

Unter den Posten Validate E-Mail in Javascript und PHP , hier ist ein nettes JavaScript-Klasse in der Lage zu überprüfen und zu kontrollieren E-Mail-Adressen. Die Benutzung ist sehr einfach, obwohl es sich um eine Client-seitige Kontrolle ist, und leicht zu umgehen, können Sie einfach deaktivieren Javascript (vorschlagen Petition gegen diese Möglichkeit ;) jetzt alle Browser JavaScript zu entziehen können, und dann alle Steuerelemente in Verbindung mit - in der kurzen Frist ist nicht alles auf dem Internet, siehe 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
/ *
** @ Name: ckmail.js
** @ Beschreibung: Prüfen Sie E-Mail-Syntax
** @ Author: undo = =
** @ Author-Web: http://www.undolog.com
** @ Author-E-Mail: @ g.fazioli undolog.com - g (dot) Fazioli (at) undolog (dot) com
** @ Datum: 21.09.2006 21.24 Uhr
** @ 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: "",

/ / ZU TUN
( e ) { GetUserName: function (e) {
this .__init ( e ) ) return ( this .__username ) ; if (this. __init (e)) return (this. __username);
false ) ; return (false);
}

/ / ZU TUN
( e ) { GetDomain: function (e) {
this .__init ( e ) ) return ( this .__domain ) ; if (this. __init (e)) return (this. __domain);
false ) ; return (false);
}

/ / ZU TUN
( e ) { GetExtension: function (e) {
this .__init ( e ) ) return ( this .__ext ) ; if (this. __init (e)) return (this. __ext);
false ) ; return (false);
}

/ / ZU TUN
( e ) { __init: function (e) {
! this .__filter. test ( e ) ) return ( false ) ; wenn return (false) (dies __filter Test (e)!..);
e. split ( "@" ) ; e. var t = split ("@");
t [ 0 ] ; . diese __username t = [0];
t [ 1 ] ; Diese __domain = t [1].;
.__domain. split ( "." ) ; t = this. __domain. split (".");
t [ 1 ] ; Diese __ext = t [1].;
true ) ; return (true);
}

/ / ZU TUN
/ / Synopsis
/ / Check (und extlist, domainlist);
/ / Führt eine Reihe von Standard-Controls von einer E-Mail.
/ / Extlist - Sie können einen optionalen zweiten Parameter, die eine Reihe von Erweiterungen, entspricht
/ / Sind zugelassen oder ausgeschlossen (include / exclude-Erweiterung) nach dem ersten Wert im Array, die alle
/ / Fehler werden berücksichtigt.
/ / Eg. [True, "en", "com"] pass (mit Liste)
/ / Eg. [False, "en", "com"] NICHT passieren (Ausschluss-Liste)
/ / Wenn -1 nicht berücksichtigt
/ / Domainliste - Sie können einen optionalen dritten Parameter, die eine Reihe von Domains, entspricht
/ / Sind zugelassen oder ausgeschlossen (include / exclude-Domain) nach den ersten Wert im Array, werden alle
/ / Fehler werden berücksichtigt.
/ / Eg. [True, "alice.it", "mac.com"] pass (mit Liste)
/ / Eg. [False, "alice.it", "mac.com"] NICHT passieren (Ausschluss-Liste)
/ / Wenn -1 nicht berücksichtigt
/ /
( e ) { Check: function (e) {
this .__init ( e ) ) { if (this. __init (e)) {
/ / Check Array domainExt überprüfen
arguments. length > 1 ) { if (arguments. Länge> 1) {
typeof ( arguments [ 1 ] ) == "object" ) { if (typeof (arguments [1]) == "object") {
arguments [ 1 ] [ 0 ] ) { // include list if (arguments [1] [0]) {/ / include-Liste
var i = 0 ; i < arguments [ 1 ] . length ; i ++ ) { for (var i = 0; i <arguments [1] Länge;. i + +) {
this .__ext == arguments [ 1 ] [ i ] . toLowerCase ( ) ) return ( true ) ; if (this. __ext == Argumente [1] [i] toLowerCase ().) return (true);
}
{ // exclude list Else {} / / Exclude-Liste
var i = 0 ; i < arguments [ 1 ] . length ; i ++ ) { for (var i = 0; i <arguments [1] Länge;. i + +) {
this .__ext == arguments [ 1 ] [ i ] . toLowerCase ( ) ) return ( false ) ; if (this. __ext == Argumente [1] [i] toLowerCase ().) return (false);
}
true ) ; return (true);
}
false ) ; return (false);
}
}
/ / Check Array domainName überprüfen
arguments. length > 2 ) { if (arguments. Länge> 2) {
typeof ( arguments [ 2 ] ) == "object" ) { if (typeof (arguments [2]) == "object") {
arguments [ 2 ] [ 0 ] ) { // include list if (arguments [2] [0]) {/ / include-Liste
var i = 1 ; i < arguments [ 2 ] . length ; i ++ ) { for (var i = 1, i <Argumente [2] Länge;. i + +) {
this .__domain == arguments [ 2 ] [ i ] . toLowerCase ( ) ) return ( true ) ; if (this. __domain == Argumente [2] [i] toLowerCase ().) return (true);
}
{ // exclude list Else {} / / Exclude-Liste

var i = 1 ; i < arguments [ 2 ] . length ; i ++ ) { for (var i = 1, i <Argumente [2] Länge;. i + +) {
this .__domain == arguments [ 2 ] [ i ] . toLowerCase ( ) ) return ( false ) ; if (this. __domain == Argumente [2] [i] toLowerCase ().) return (false);
}
true ) ; return (true);
}
false ) ; return (false);
}
}
true ) ; // email correct return (true) / / korrekte E-Mail
}
false ) ; // error return (false) / / Fehler
}
};

Das Objekt oCKMail bietet mehrere Methoden für die Durchführung einer parallelen Reihe von Prüfungen auf die Adresse, wie die Erweiterung, Domain, etc. ...

Um wirklich sicher sein, wenn Sie PHP haben, können Sie einen zusätzlichen und effektiven Kontrolle vor der Ausführung des Befehls add mail() . Hier ist die PHP-Klasse für diesen Zweck geeignet:

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
/ *
** @ Name: cckmail.php
** @ Beschreibung: Prüfen Sie E-Mail-Syntax
** @ Author: undo = =
** @ Author-Web: http://www.undolog.com
** @ Author-E-Mail: @ g.fazioli undolog.com - g (dot) Fazioli (at) undolog (dot) com
** @ Datum: 21.09.2006 23.58 Uhr
** @ Ver: 1.0
**
** Beispiele
**
** / / Für eine Adresse OHNE die E-Mail-Domäne "e-lementi.com" und "mac.com" Check
**
** $ OCKMail CCKMail = new ();
** $ OCKMail-> check ($ email, NULL, array (false, "e-lementi.com", "mac.com"));
**
** / / Überprüfen Sie die Adresse, einschließlich E-Mail-Domäne "e-lementi.com" und "mac.com"
**
** $ OCKMail CCKMail = new ();
** $ OCKMail-> check ($ email, NULL, array (true, "e-lementi.com", "mac.com"));
**
** / / Für eine Adresse mit Ausnahme derjenigen von E-Mails mit einem "net", "en" Check "org"
**
** $ OCKMail CCKMail = new ();
** $ OCKMail-> check ($ email, array (false, "net", "en", "org"));
**
** GESCHICHTE / CHANGE LOG
**
* /

! function_exists ( 'checkdnsrr' ) ) { if ( function_exists ('checkdnsrr')) ​​{
( $host , $type = '' ) { Funktion checkdnsrr ($ host, $ type ='') {
! empty ( $host ) ) { if ( leer ($ 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) = Jede ($ output)) {
eregi ( "^ $host " , $line ) ) { if ( eregi ("^ $ host", $ line)) {
; return true;
}
}
; return false;
}
}
}
/ /
{Class CCKMail
= "1.1" ; var $ __release = "1.1";
= false ; var $ status = false;
; var $ username;
; var $ domain;
; var $ ext;
/ /
CCKMail function () {}
/ /
$e ) { Funktion _test ($ s) {
status = false ; $ This -> status = 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 = explode ("@", $ s);
username = strtolower ( $t [ 0 ] ) ; $ This -> username = strtolower ($ t [0]);
domain = strtolower ( $t [ 1 ] ) ; $ This -> domain = strtolower ($ t [1]);
explode ( "." , $this -> domain ) ; $ T = explode ('.', $ this -> Domain);
ext = strtolower ( $t [ 1 ] ) ; $ This -> ext = strtolower ($ t [1]);
/ /
checkdnsrr ( $this -> domain . '.' , 'MX' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> Domain ..'', 'MX')) $ this -> status = true;
checkdnsrr ( $this -> domain . '.' , 'A' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> Domain ..'', 'A')) $ this -> status = true;
checkdnsrr ( $this -> domain . '.' , 'CNAME' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> Domain ..'', 'CNAME')) $ this -> status = true;
}
}
/ /
$m , $e = NULL , $d = NULL ) { Funktion überprüfen ($ m, $ e = NULL, $ d = NULL) {
_test ( $m ) ; $ This -> _test ($ m);
$this -> status ) { if ($ this -> status) {
/ / Check Array domainExt überprüfen
! is_null ( $e ) ) { if ( is_null ($ e)) {
$e [ 0 ] ) { // include list if ($ e [0]) {/ / include-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 {} / / Exclude-Liste
$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 ) ; return (true);
}
false ) ; return (false);
}
/ / Check Array domainName überprüfen
! is_null ( $d ) ) { if ( is_null ($ d)) {
$d [ 0 ] ) { // include list if ($ d [0]) {/ / include-Liste
$i = 1 ; $i < sizeof ( $d ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ d); $ i + +) {
$this -> domain == strtolower ( $d [ $i ] ) ) return ( true ) ; if ($ this -> Domain == strtolower ($ d [$ i])) return (true);
}
{ // exclude list Else {} / / Exclude-Liste
$i = 1 ; $i < sizeof ( $d ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ d); $ i + +) {
$this -> domain == strtolower ( $d [ $i ] ) ) return ( false ) ; if ($ this -> Domain == strtolower ($ d [$ i])) return (false);
}
true ) ; return (true);
}
false ) ; return (false);
}
true ) ; return (true);
}
false ) ; return (false);
}
}
?>

Was ineteressante ist die Fähigkeit dieser Klasse auf MX-Servern herstellen (siehe checkdnsrr() ), um die Präsenz der Domain zu überprüfen. So finden sich neben eine Syntaxüberprüfung der E-Mail läuft eine echte Ping-Domain vor. Wir können sicher sagen, dass diese Methode 80% ist ...

One Response to "Classes un'indirizzo Javascript und PHP, um E-Mail bestätigen"

  1. 30. Juni 2009 Undolog.com »Wordpress: Schritt für Schritt, wie sie ihre eigenen Login erstellen :

    [...] Sie können auch eine zusätzliche Überprüfung auf dem Server / php. Siehe in diesem Zusammenhang Klassen Javascript und PHP, um E-Mail-un'indirizzo PLAIN TEXT validieren [...]

Hinterlasse einen Kommentar

XHTML TAG PERMIT: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERTION CODE:
 <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