Autor Zpráva
janharvalik
Profil *
Dobrý den,
mám script na kontrolu emailu:

$email="novakú)ů§,.-/*-@gfg.net";
if(ereg('^[^\ ]*@[^\ ]*\.+(
                        
cz|sk|eu|com|net|biz|name|org|info|ac|ag|am|      
as|at|be|bz|cc|cd|ch|cx|de|fm|gs|in|io|jp|la|
li|lt|lv|me|ms|nu|pl|com.pl|ru|sc|se|sg|sh|
tc|tk|to|tv|co.uk|me.uk|org.uk|vg|ws

)+$', $email)){
echo $email;
}else{
echo "<h2>špatně</h2>";
}


funguje dobře ale zajímá mě co se vám na něm "nelíbí", kde vydíte slabiny, atd… ?
Mastodont
Profil
Slabiny vidím především v tvojí češtině :)
A funkce ereg* jsou zastaralé, používej preg*.
Nox
Profil
http://www.regular-expressions.info/email.html
Joker
Profil
janharvalik:
Je to záměr, odfiltrovat lidi ze všech ostatních domén krom těch uvedených v reguláru?
Regulární výraz pro zjednodušenou kontrolu e-mailu.
Mega-regulár pro kontrolu adresy podle RFC (nedoporučuji implementovat).
Davex
Profil
janharvalik:
Od PHP 5.2 je asi vhodnější používat k formální kontrole e-mailové adresy:
filter_var($email, FILTER_VALIDATE_EMAIL);
Chamurappi
Profil
Reaguji na janharvalika:
Já bych na tvém místě kontroloval jen přítomnost zavináče. Člověk, který bude chtít napsat nesmyslnou neexistující adresu, stejně projde jakkoliv přísným regulárem. Přísný regulár ale může zapomenout na některé top-level domény, nebo na domény s diakritikou atd.
janharvalik
Profil *
Mastodont:
Slabiny vidím především v tvojí češtině :)

jj, to tluče do očí :)


Joker:
Je to záměr, odfiltrovat lidi ze všech ostatních domén krom těch uvedených v reguláru?

jen jsem chtěl kontrolovat koncovku.


Davex:
 Od PHP 5.2 je asi vhodnější používat k formální kontrole e-mailové adresy:
filter_var($email, FILTER_VALIDATE_EMAIL);


děkuji to mi hodně pomůže. Má tato funkce nějaké "vedlejší účinky" ?


Chamurappi:
stejně projde jakkoliv přísným regulárem

projde i
filter_var($email, FILTER_VALIDATE_EMAIL);
?


děkuji všem za pomoc.
djlj
Profil
janharvalik:
jen jsem chtěl kontrolovat koncovku.
To ti bude brzy k ničemu, až bude moct být cokoliv.cokoliv.
Joker
Profil
janharvalik:
jen jsem chtěl kontrolovat koncovku.
Vyjmenovávat existující TLD se nedoporučuje. Jednak jich je skoro 300, jednak by bylo nutné ten seznam neustále měnit, když ICANN schválí novou doménu (nebo nějaká zanikne).

„stejně projde jakkoliv přísným regulárem“
projde i filter_var($email, FILTER_VALIDATE_EMAIL);?
No samozřejmě, přece budu-li chtít úmyslně obejít validaci na e-mail, napíšu tam formálně správnou, ale neexistující e-mailovou adresu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0