Zaphod-B
01-03-2003, 23:55
Moin,
immer wieder stolper ich darüber, dass meine E-Mail Adresse nicht validiert wird, nun war ein Admin mal so net, mir den entsprechende Funltion aus dem PHP Script zu zusenden.
Die E-Mail Adresse lautet zaphod-b at herz--aus--gold.de (das at bitte gegen ein @ austauschen).
Meine vermutung ist, dass das Script die doppel Minus Zeichen nicht akzeptiert.
Und da leider meine PHP Kentnisse gleich null sind, hoffe ich dass hier jemand den Fehler in der Funktion erkennt, und korigiert.
Hier die Funtion:
$ccTLD = array("ac", "ad", "ae", "af", "ag", "ai", "al", "am", "an",
"ao", "aq", "ar", "as", "at", "au", "aw", "az", "ba", "bb", "bd", "be",
"bf", "bg", "bh", "bi", "bj", "bm", "bn", "bo", "br", "bs", "bt", "bv",
"bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", "cl",
"cm", "cn", "co", "cr", "cu", "cv", "cx", "cy", "cz", "de", "dj", "dk",
"dm", "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "fi", "fj",
"fk", "fm", "fo", "fr", "ga", "gd", "ge", "gf", "gg", "gh", "gi", "gl",
"gm", "gn", "gp", "gq", "gr", "gs", "gt", "gu", "gw", "gy", "hk", "hm",
"hn", "hr", "ht", "hu", "id", "ie", "il", "im", "in", "io", "iq", "ir",
"is", "it", "je", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", "kn",
"kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls",
"lt", "lu", "lv", "ly", "ma", "mc", "md", "mg", "mh", "mk", "ml", "mm",
"mn", "mo", "mp", "mq", "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my",
"mz", "na", "nc", "ne", "nf", "ng", "ni", "nl", "no", "np", "nr", "nu",
"nz", "om", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm", "pn", "pr",
"ps", "pt", "pw", "py", "qa", "re", "ro", "ru", "rw", "sa", "sb", "sc",
"sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", "sn", "so", "sr",
"st", "sv", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", "tm",
"tn", "to", "tp", "tr", "tt", "tv", "tw", "tz", "ua", "ug", "uk", "um",
"us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws",
"ye", "yt", "yu", "za", "zm", "zw");
$gTLD = array("arpa", "com", "edu" , "gov", "int", "mil", "net",
"org");
$newTLD = array("aero", "biz", "coop", "info", "museum", "name",
"pro");
$TLD = array_merge($ccTLD, $gTLD);
$allTLD = array_merge($TLD, $newTLD);
list($empty, $at_missing, $invalid_username, $invalid_hostname,
$invalid_tld, $unknown_domain) = array(1, 2, 4, 8, 16, 32);
function validateMail($s, $new) {
global $TLD, $allTLD, $empty, $at_missing, $invalid_username,
$invalid_hostname, $invalid_tld, $unknown_domain;
if ($s == "")
return $empty;
else if (substr_count($s, "@") != 1)
return $at_missing;
else {
$res = 0;
list($userName, $hostName) = explode("@", $s);
if (! preg_match("/^[a-z0-9\_\-\.\%]+$/i", $userName))
$res |= $invalid_username;
if (! preg_match("/^([a-z0-9]+[\-\.]{0,1})+\.[a-z]+$/i",
$hostName))
$res |= $invalid_hostname;
$subdomains = explode(".", $hostName);
$tld = $subdomains[count($subdomains) - 1];
if (! ($new? in_array($tld, $allTLD): in_array($tld, $TLD)))
$res |= $invalid_tld;
if (! checkdnsrr($hostName))
$res |= $unknown_domain;
return $res;
}
}
Greetings Zaphod-B
immer wieder stolper ich darüber, dass meine E-Mail Adresse nicht validiert wird, nun war ein Admin mal so net, mir den entsprechende Funltion aus dem PHP Script zu zusenden.
Die E-Mail Adresse lautet zaphod-b at herz--aus--gold.de (das at bitte gegen ein @ austauschen).
Meine vermutung ist, dass das Script die doppel Minus Zeichen nicht akzeptiert.
Und da leider meine PHP Kentnisse gleich null sind, hoffe ich dass hier jemand den Fehler in der Funktion erkennt, und korigiert.
Hier die Funtion:
$ccTLD = array("ac", "ad", "ae", "af", "ag", "ai", "al", "am", "an",
"ao", "aq", "ar", "as", "at", "au", "aw", "az", "ba", "bb", "bd", "be",
"bf", "bg", "bh", "bi", "bj", "bm", "bn", "bo", "br", "bs", "bt", "bv",
"bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", "cl",
"cm", "cn", "co", "cr", "cu", "cv", "cx", "cy", "cz", "de", "dj", "dk",
"dm", "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "fi", "fj",
"fk", "fm", "fo", "fr", "ga", "gd", "ge", "gf", "gg", "gh", "gi", "gl",
"gm", "gn", "gp", "gq", "gr", "gs", "gt", "gu", "gw", "gy", "hk", "hm",
"hn", "hr", "ht", "hu", "id", "ie", "il", "im", "in", "io", "iq", "ir",
"is", "it", "je", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", "kn",
"kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls",
"lt", "lu", "lv", "ly", "ma", "mc", "md", "mg", "mh", "mk", "ml", "mm",
"mn", "mo", "mp", "mq", "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my",
"mz", "na", "nc", "ne", "nf", "ng", "ni", "nl", "no", "np", "nr", "nu",
"nz", "om", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm", "pn", "pr",
"ps", "pt", "pw", "py", "qa", "re", "ro", "ru", "rw", "sa", "sb", "sc",
"sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", "sn", "so", "sr",
"st", "sv", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", "tm",
"tn", "to", "tp", "tr", "tt", "tv", "tw", "tz", "ua", "ug", "uk", "um",
"us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws",
"ye", "yt", "yu", "za", "zm", "zw");
$gTLD = array("arpa", "com", "edu" , "gov", "int", "mil", "net",
"org");
$newTLD = array("aero", "biz", "coop", "info", "museum", "name",
"pro");
$TLD = array_merge($ccTLD, $gTLD);
$allTLD = array_merge($TLD, $newTLD);
list($empty, $at_missing, $invalid_username, $invalid_hostname,
$invalid_tld, $unknown_domain) = array(1, 2, 4, 8, 16, 32);
function validateMail($s, $new) {
global $TLD, $allTLD, $empty, $at_missing, $invalid_username,
$invalid_hostname, $invalid_tld, $unknown_domain;
if ($s == "")
return $empty;
else if (substr_count($s, "@") != 1)
return $at_missing;
else {
$res = 0;
list($userName, $hostName) = explode("@", $s);
if (! preg_match("/^[a-z0-9\_\-\.\%]+$/i", $userName))
$res |= $invalid_username;
if (! preg_match("/^([a-z0-9]+[\-\.]{0,1})+\.[a-z]+$/i",
$hostName))
$res |= $invalid_hostname;
$subdomains = explode(".", $hostName);
$tld = $subdomains[count($subdomains) - 1];
if (! ($new? in_array($tld, $allTLD): in_array($tld, $TLD)))
$res |= $invalid_tld;
if (! checkdnsrr($hostName))
$res |= $unknown_domain;
return $res;
}
}
Greetings Zaphod-B