Kontrola emailové adresy

Klíčová slova: email, regulérní výrazy, domény, ereg
Rubrika: PHP
Následující funkce pomocí regulérních výrazů provádí kontrolu dobře zadané emailové adresy. Pro zvýšení věrohodnosti ještě provádí ověření doménového jména.Vlastní kontrolu tedy můžeme rozdělit na tři části:

 

1. Kontrola jména
2. Kontrola přítomnosti znaku zavináč ("@")
3. Kontrola a ověření domény
 

Kontrola jména i domény sleduje zda jsou v zadaném emailu obsažena pouze malá a velká písmena, číslice, tečky a pomlčky. Jméno navíc může obsahovat podtržítko. Ověření domény pak hledá přítomnost zadané doménové zkratky (cz,com...) v poli array_domain_name. Funkce vrací hodnotu False pokud není některá z těchto podmínek dodržena.

 
Function IsEmail ($email)
{
$vysl = False;
$array_domain_name = 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','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','com','net','org','edu','int','arpa','gov','mil','aero','biz','coop','info',
'museum','name','pro','su','ps'
) ;
$email = trim ($email); // ořeže předaný parametr o netisknutelné znaky
if ($email!='')
{
if ( ereg ("^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)+$", $email, $regs) )
{
$code_name = substr($regs[2],1); // odstranění tečky s doménového jména
$vysl = in_array($code_name,$array_domain_name); // ověření domény
}
}
return $vysl;
}
 
Následuje příklad jak funkci např. využít.
 
if ( IsEmail($email)) echo "email OK";
else echo "Špatně zadaný email!"
?>
Autor: Jiří Provazník
Datum vydání: 07.02.2003 | Zobrazeno: 4650
Permanentní odkaz: Kontrola emailové adresy

Komentáře (0)
Přidej vlastní komentář:
Následující (běžně neviditelná) pole slouží pro vnitřní identifikaci systému. Pokud je vyplníte nebude možné váš požadavek na straně serveru zpracovat:
URL:
contents:
Website:
Pro odeslání vašeho komentáře použijte tlačítko "Odeslat". Toto tlačítko nepoužívejte:

Následující položky je vhodné vyplnit:
Jméno :
Email :
Web :
Místo :
Hodnocení:
Hodnocení jako pomocí hvězdiček
1/5= nejhorší, 5/5=nejlepší