/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Validering af emailadresse
Fra : J. Nielsen


Dato : 08-11-03 13:25

Hej!

Hvordan validerer jeg lettest, om indholdet af en streng er en gyldig
emailadresse (someone@somewhere.net)?

Med venlig hilsen

Jakob Bro Nielsen



 
 
Jacob Atzen (08-11-2003)
Kommentar
Fra : Jacob Atzen


Dato : 08-11-03 13:31

"J. Nielsen" <mail@jbro.NOSPAMdk> writes:

> Hvordan validerer jeg lettest, om indholdet af en streng er en gyldig
> emailadresse (someone@somewhere.net)?

Du bruger et regulært udtryk.

--
Med venlig hilsen
- Jacob Atzen

J. Nielsen (08-11-2003)
Kommentar
Fra : J. Nielsen


Dato : 08-11-03 13:33

> Du bruger et regulært udtryk.

huh? Jeg er ikke med?



Thomas Lindgaard (08-11-2003)
Kommentar
Fra : Thomas Lindgaard


Dato : 08-11-03 14:48

Davs

> Hvordan validerer jeg lettest, om indholdet af en streng er en gyldig
> emailadresse (someone@somewhere.net)?

Du kan friksæmpel bruge Google og finde dette

eregi('^[ a-z0-9-_]+(.[
a-z0-9-_]+)*@[a-z0-9-]+(.[a-z0-9-_]+)*(.[a-z]{2,3})$', $test_string);

på denne side:

http://www.potentialcreations.com/articles/regex_samples.php

Der er også lavet flere algoritmer der går ind og tjekker om adressen
faktisk findes, men det er nok overkill i de fleste tilfælde.

Mvh.
/Thomas



Mikkel Z. Herold \(M~ (08-11-2003)
Kommentar
Fra : Mikkel Z. Herold \(M~


Dato : 08-11-03 17:49

In news:3face07a$0$7167$ba624c82@nntp05.dk.telia.net,
J. Nielsen <mail@jbro.NOSPAMdk> typed:

> Hvordan validerer jeg lettest, om indholdet af en streng er en gyldig
> emailadresse (someone@somewhere.net)?

Jeg bruger dette regex:

if
(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([0-9a-z](-?[0-9a-z])*\.)+[a-z]{2}([zm
uvtg]|fo|me)?$",$email)) {
echo "E-mail address not valid or empty";
}

Mikkel

--
"And my sanity scans the horizon"
Sting - The Wild Wild Sea

http://www.mzh.dk



Troels Arvin (09-11-2003)
Kommentar
Fra : Troels Arvin


Dato : 09-11-03 12:12

On Sat, 08 Nov 2003 13:24:32 +0100, J. Nielsen wrote:

> Hvordan validerer jeg lettest, om indholdet af en streng er en gyldig
> emailadresse (someone@somewhere.net)?

Test 1:
Sørg for, at den har mindst ét snabel-a (jeg mener ikke, at der er noget
i vejen for e-mail adresser med flere @'er), og at der står mindst ét
tegn foran.

Test 2:
Tag derefter domænet (strengen efter sidste @) og kontrollér, at der
findes en MX og/eller en A-record for det.

--
Greetings from Troels Arvin, Copenhagen, Denmark


Jimmy (09-11-2003)
Kommentar
Fra : Jimmy


Dato : 09-11-03 12:48


"Troels Arvin" <troels@arvin.dk> wrote in message
news:pan.2003.11.09.11.11.32.173317@arvin.dk...
> On Sat, 08 Nov 2003 13:24:32 +0100, J. Nielsen wrote:
>
> > Hvordan validerer jeg lettest, om indholdet af en streng er en gyldig
> > emailadresse (someone@somewhere.net)?
>
> Test 1:
> Sørg for, at den har mindst ét snabel-a (jeg mener ikke, at der er noget
> i vejen for e-mail adresser med flere @'er),

Der er *max* eet @.
@ er adskilleren mellem eet brugernavn og een host.

Mvh
Jimmy



Peter Brodersen (09-11-2003)
Kommentar
Fra : Peter Brodersen


Dato : 09-11-03 15:22

On Sun, 9 Nov 2003 12:48:08 +0100, "Jimmy"
<nyhedsgruppe@get2net.danmark> wrote:

>Der er *max* eet @.
>@ er adskilleren mellem eet brugernavn og een host.

Ja, én host, men man kan i princippet godt relay'e over flere. Dog vil
de fleste mailservere nok have lukket dette, da det stort set ikke
bruges i praksis til andre formål end at narre mailservere til at ku'
spamme igennem dem. Det er dog mindre vigtigt:

Problemet ved "gyldig e-mail-adresse?"-forespørgsler er normalt, at
der ikke angives hvad formålet er med dette. Hvis det blot er hjælp
til brugeren for at fange mulige tastefejl, så bør man holde det på et
minimum. Thomas Lindgaard og Mikkel Z. Herolds eksempler tillader fx
ikke mails til .aero-, .museum- eller .coop-adresser, hvilket
unægteligt vil provokere en bruger, der rent faktisk har en sådan
adresse - altså, en dum side, der bliver ved med at påstå, at det er
forkert.

I de her debatter plejer der også ofte at være henvisninger til
diverse RFC'ers definition, men det er for hele string'en, fx:
   "Peter Brodersen" <usenet@ter.dk>
... og ikke bare:
   usenet@ter.dk

Her er der ikke behov for at honorere en fuld RFC-gyldighed, da vi
alligevel skal bruge e-mail-adressen i anden kontekst, evt. i en
situation, hvor brugeren både skal indtaste sit navn og sin
e-mail-adresse - og så sammensætter man selv begge dele.

Fortsætter vi med tanken om at det blot er hjælp til brugeren, så vil
jeg anbefale at holde valideringen på et minimum, også af hensyn til
at være forudseende. Der er ingen grund til at afvise .aero, hvis man
alligevel accepterer fx .foo (som ikke eksisterer). Dvs. tjek på
snabel-a, og evt. på punktum.

Alternativt kan jeg anbefale at mange fejltjek, hvor man forsøger at
hjælpe brugeren, ikke er "påståelige". På et tidspunkt var
installationen til Macromedias Flash et godt eksempel på dette. En
række informationer var required (fx navn, e-mail-adresse), og
klikkede man videre uden at have udfyldt dem, blev felterne markeret.
Klikkede man videre igen, accepterede programmet det - vel vidende at
de folk, der ikke ville udfylde felterne (altså rent faktisk havde
udfyldt felterne, som de ønskede, uden at det var en fejl at nogle
felter stod blanke) ellers bare ville taste forkert information ind.

Det gælder selvfølgelig meget andet end lige præcis e-mail-adresse. En
side kan sagtens advare om at den fx ikke kender postnummer 2870, men
hvis brugeren insisterer på at indtaste det også anden gang, så er der
nok en grund til det. I dette eksempel at postnummeret bliver taget i
brug fra nytår, og det nok ikke er alle, der får opdateret deres liste
over postnumre. For en 2870-beboer vil det være en provokation at en
dum webside bliver ved med at fortælle, at "postnummeret findes ikke".

--
- Peter Brodersen

Ugens sprogtip: gider (og ikke gidder)

Brian Schmidt (03-01-2004)
Kommentar
Fra : Brian Schmidt


Dato : 03-01-04 02:36

J. Nielsen wrote:
> Hvordan validerer jeg lettest, om indholdet af en streng er en gyldig
> emailadresse (someone@somewhere.net)?

<?php
// Selve funktionen der tjekker om en e-mail er gyldig
function validate_email ($email)
{
// Tjek om e-mail adressen strengmæssigt er gyldig.
if
(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z]([glmotuvz]|pa|fo|me|ro|op|seum)?$",$email,
$check))
{
// Tjek om der er en MX record for domænet.
if (getmxrr(substr(strstr($check[0], '@'), 1), $validate_email_temp))
{
return TRUE;
}
// Ikke alle domæner har oprettet MX records, lav et tjek om
domænet er oprettet i DNS
if (checkdnsrr(substr(strstr($check[0], '@'), 1),"ANY"))
{
return TRUE;
}
}
// Adressen er ikke gyldig.
return FALSE;
}

if (validate_email('kontakt@microsoft.com'))
{
print('Denne adresse er gyldig');
}
?>


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste