|
| 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');
}
?>
| |
|
|