KVÍZ

Hádanka:
ako čo najkratším zápisom v PHP checknúť emailovú adresu?

nieco@nieco.xx

(bez overovania na servery).

som zvedavý na vaše riešenia... je viac možností, ktorými sa dajú demonštrovať rôzne príkazy. (prosím o dôkladné vysvetlenie postupu).
výsledok môže byť TRUE or FALSE.
Eregi('^([a-z0-9.-_]+@[[a-z0-9.-_]]+\.([[:alpha:]]{2,4})$' ,$email);

Blbej regulární výraz. Když už sis nenašel tohle, tak vysvětlení snad ano?!
<HTML>Tom: imho to není kompletní. Validní emailová adresa je i třeba ahoj@123.145.67.89</HTML>
Nípal: ale odpovídá to drtivé většině používaných emailových adres. Pokud by jsi chtěl chtěl mít opravdu 100% neprůstřelný regulár, tak by byl na tři řádky.
Já to používám v několika projektech a ještě si nikdo nestěžoval.
<HTML>Neprustrelny regular a IndexOf('@') je totez...
V prvnim pripade ti tam vyplnim klidne elvis@undefined.com a v druhem treba aa@aa
A rozdil? Zadny, kdyz proste svuj email nechci nikde dat, tak ho nedam.
Neni tedy otazkou jak dobre osetrit kontrolu, ale jak dobry duvod date uzivateli k tomu, aby ho zadat chtel. Nejake osetreni a kontroly jsou zcela irelevantni.</HTML>
Ako osetrenie je celkom fajn potvrdenie emailu zaslanim kontrolneho emailu na adresu uvedeneho emailu. Hlavne ide o kontrolu uzivatela, napriklad ked sa on sam pomyli a neda napriklad bodku alebo zavinac. su totiz urcity zaciatocnici ktory ani nevedia ze pred email sa nepise www, atd...
na tému email sa dá nájsť veľa príspevkov, ale chcel som troška viac variant ukázať. a aj pre začiatočníkov to vysvetliť.
niekde som našiel napríklad tento jednoduchší zápis... ale kontroluje len jedinečnosť @:

^[^@]+@[^@.]+.[^@]+$
eregi("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$",$mail);

pre porovnavku

Eregi('^([a-z0-9.-_]+@[[a-z0-9.-_]]+\.([[:alpha:]]{2,4})$' ,$email);
a este jedno riesenie hodene hned do funkcie:

function check_email($email) {
$atom = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]'; // znaky tvořící uživatelské jméno
$domain = '[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])'; // jedna komponenta domény
return eregi("^$atom+(\\.$atom+)*@($domain?\\.)+$domain\$", $email);
}
Aha, takže skutečnou příčinou založení tohoto tématu je skutečnost, že 1okaty..blabla měl splín a potřeboval se vypovídat... Chápu to dobře, že? ;)
<HTML>DeedX: Ano, chápeš to dobře.</HTML>
co je to splín? DeedX mimochodom nieje tu kazdy taky mudry ako ty.. len som chcel najst nejake naj riesenie... a mozno pomoct aj inym ktory to nevedia
<HTML>http://slovnik-cizich-slov.abz.cz/web.php/slovo/splin-spleen-splin</HTML>