25. januar 2007 - 09:48
Der er
15 kommentarer og 2 løsninger
PHP: gyldig email?
Jeg har denne ereg som jeg lavede for 2 år siden, til at teste om en string indeholder en gyldig email-adresse: ereg("([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z0-9._-]+)", $email) Er denne stadig korrekt?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
25. januar 2007 - 09:50
#1
Inden for de kriterier den tillader ja :-) Der er vel ikke så meget at spørge om. Jeg synes dog stadig at "|(.*)@(.*).(.*)|" (preg) bør være nok, da der sjælden er en grund til at checke andet. Hvis du skal sende vigtige emails ud, indtaster brugeren jo nok ikke en falsk email.
25. januar 2007 - 10:23
#2
Hvordan foreslår du altså at jeg skal bruge preg istedet?
25. januar 2007 - 10:24
#3
som jeg lige skrev det :p
25. januar 2007 - 10:35
#4
preg("|(.*)@(.*).(.*)|",$email) ?
25. januar 2007 - 10:37
#5
Prøv: function isValidEmail($address) { $address = trim($address); list(,$host) = split('@',$address); if (!preg_match('/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+' . // username '@' . // 'at' '([-0-9A-Z]+\.)+' . // domain name(s) '([0-9A-Z]){1,6}\.?$/i', // tld $address)) { // Return true if it's an IP return preg_match( "/^\[(\d{1,3}\.){3}\d{1,3}\]$/", $host ); } $host .= '.'; // DNS style address return (getmxrr($host,$mxrecords) || checkdnsrr($host,'ANY')); }
25. januar 2007 - 10:39
#6
coderdk list(,$host) = split('@',$address); burde nok være list(,$host) = explode('@',$address); da split bruger regulare expression splitting, som er langsommere :-)
25. januar 2007 - 10:40
#7
coderdk >> Så meget sikkerhed har jeg ikke brug for - men ellers tak.
25. januar 2007 - 10:44
#8
windcape >> Du foreslår altså: preg("|(.*)@(.*).(.*)|",$email) ?
25. januar 2007 - 10:46
#9
preg er ikke engang en funktion. Jeg foreslår du læser manualen istedet for at gætte dig til syntax. preg står for perl styled regulare expressions, hvilket var sådan en jeg skrev. Du kan se hvordan man bruger dem i coderdks script.
25. januar 2007 - 10:49
#10
Tak for dit svar. Jeg er altså nødt til at bruge preg_match istedet? preg_match("|(.*)@(.*).(.*)|",$email)
25. januar 2007 - 10:50
#11
preg_match er bedre, men brug + i stedet for *
25. januar 2007 - 10:51
#12
* = 0 eller flere + = 1 eller flere
25. januar 2007 - 10:52
#13
Men hvorfor ikke bruge min? preg_match('/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z]){1,6}\.?$/i', $email)
25. januar 2007 - 10:55
#14
fordi den tager længere tid at skrive! :~p
25. januar 2007 - 11:00
#15
Dvs. at jeg bør bruge denne: preg_match("|(.+)@(.+).(.+)|",$email)
25. januar 2007 - 18:18
#16
Smider du et svar, windcape?
26. januar 2007 - 10:58
#17
ok :) Men del med coderdk :p
Vi tilbyder markedets bedste kurser inden for webudvikling