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 |
#2 · Zasláno: 29. 8. 2010, 07:29:42
Slabiny vidím především v tvojí češtině :)
A funkce ereg* jsou zastaralé, používej preg*. |
||
Nox Profil |
#3 · Zasláno: 29. 8. 2010, 08:22:02
|
||
Joker Profil |
#4 · Zasláno: 29. 8. 2010, 10:30:10
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 |
#5 · Zasláno: 29. 8. 2010, 13:47:24
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 |
#6 · Zasláno: 29. 8. 2010, 15:23:55
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 * |
#7 · Zasláno: 30. 8. 2010, 00:05:25
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 |
#8 · Zasláno: 30. 8. 2010, 02:23:56
janharvalik:
„jen jsem chtěl kontrolovat koncovku.“ To ti bude brzy k ničemu, až bude moct být cokoliv.cokoliv. |
||
Joker Profil |
#9 · Zasláno: 30. 8. 2010, 08:28:14
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. |
||
Časová prodleva: 14 let
|
0