/ 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
Mail-tjek-script
Fra : Lasse Hedegaard


Dato : 12-02-02 01:04

Jaja, nu skal vi på den igen...

Jeg bruger pt. dette script, men ofte melder det tilbage at
mailadressen er ugyldig, selvom det ikke er tilfældet - hvorfor?

Det gælder bl.a. for @get2net.dk og @jubiimail.dk

function check_email ($q)
{
list($user,$host) = explode("@",$q);
if (!$q) return false;
elseif (!ereg("@",$q)) return false;
elseif (!$user) return false;
elseif (eregi("[^a-z0-9.-_]",$user)) return false;
elseif (!checkdnsrr($host,"MX")) return false;
else return true;
}

venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - Få fjernet SIM-låsen fra din mobiltelefon!

 
 
Mogens Meier Christe~ (12-02-2002)
Kommentar
Fra : Mogens Meier Christe~


Dato : 12-02-02 02:38


"Lasse Hedegaard" <laxxe@nospam.dk> wrote in message
news:5lmg6ugtac9a2k6i1ea4la2bh5t1fb04pp@news.tele.dk...
> Jaja, nu skal vi på den igen...

> function check_email ($q)

Den kan gøres simplere (og mere overskuelig)!

Der er en udemærket diskussion af eksempler på
http://dk.php.net/manual/en/function.eregi.php - hvorfor ikke bruge dem?


--
Mvh. Mogens
B.Sc. i datalogi. Søger IT-job på Fyn!
www.momech.dk



Christian Joergensen (12-02-2002)
Kommentar
Fra : Christian Joergensen


Dato : 12-02-02 13:12

On Tue, 12 Feb 2002 02:37:40 +0100, Mogens Meier Christensen wrote:

> Den kan gøres simplere (og mere overskuelig)!

Med regex? - Jeg tvivler.

--
Christian Jørgensen | Never make any mistaeks.
http://www.razor.dk |

Mogens Meier Christe~ (12-02-2002)
Kommentar
Fra : Mogens Meier Christe~


Dato : 12-02-02 13:42

"Christian Joergensen" <mail@phpguru.dk> wrote in message
news:pan.2002.02.12.13.11.52.141667.3264@phpguru.dk...

> > Den kan gøres simplere (og mere overskuelig)!
>
> Med regex? - Jeg tvivler.

Har du overhovedet kigget på det link jeg sendte? ;)

Følgende er snippet derfra og ændret en smule:

if( !eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+))+$",
$mail, $regs) )
return false;
elseif( gethostbyname($regs[2]) == $regs[2] )
return false;
return true;

Det kan selvfølgelig gøres endnu kortere, meen... :)

OK regex'en er måske ikke mere overskuelig, men hvis man har forstået hvad
den gøre er det da simplere og bliver gjort af een omgang.

Og hvis der stadig er nogen der ikke gider læse kommentaren i manualen:
"note: The reason I'm using gethostbyname() and not getmxrr() or such
is that getmxrr() doesn't work on Win2000/XP."


--
Mvh. Mogens
B.Sc. i datalogi. Søger IT-job på Fyn!
www.momech.dk




Christian Joergensen (12-02-2002)
Kommentar
Fra : Christian Joergensen


Dato : 12-02-02 15:23

On Tue, 12 Feb 2002 13:42:08 +0100, Mogens Meier Christensen wrote:

> if(
> !eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+))+$",
> $mail, $regs) )
> return false;
> elseif( gethostbyname($regs[2]) == $regs[2] )
> return false;
> return true;

Jeg ved ikke om mit domæne er hostet på en wonderserver - men jeg kan
altså godt sende til adresser ala:

   - "æøå"@razor.dk
   - _@razor.dk

Ok - indrømmet; det er ikke de mest normale emailadresser :)

> OK regex'en er måske ikke mere overskuelig, men hvis man har forstået
> hvad den gøre er det da simplere og bliver gjort af een omgang.

Komplexitet gør ikke ting mere simpelt - i min verden.

> Og hvis der stadig er nogen der ikke gider læse kommentaren i manualen:
> "note: The reason I'm using gethostbyname() and not getmxrr() or such is
> that getmxrr() doesn't work on Win2000/XP."

Der fik du mig :)

--
Christian Jørgensen | Never make any mistaeks.
http://www.razor.dk |

Mogens Meier Christe~ (13-02-2002)
Kommentar
Fra : Mogens Meier Christe~


Dato : 13-02-02 03:46

"Christian Joergensen" <mail@phpguru.dk> wrote in message
news:pan.2002.02.12.15.23.04.880603.3264@phpguru.dk...

> Jeg ved ikke om mit domæne er hostet på en wonderserver - men jeg kan
> altså godt sende til adresser ala:
>
> - "æøå"@razor.dk
> - _@razor.dk

> Ok - indrømmet; det er ikke de mest normale emailadresser :)


ARGH!!! :)

Nå, men det var ud fra min egen lille private opfattelse af hvad et
"normalt" username kunne være ;)

Dvs. man skal bruge ".+" som username?

> > !eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+))+$",
> > $mail, $regs) )
> > return false;

> > OK regex'en er måske ikke mere overskuelig, men hvis man har forstået
> > hvad den gøre er det da simplere og bliver gjort af een omgang.

> Komplexitet gør ikke ting mere simpelt - i min verden.

Egentlig heller ikke i min verden! :)

Det jeg mente var at det er "clear cut" hvad der foregår:

1) regex til at tjekke *syntaks* for username @ hostname
2) Slå hostname op.

Dvs. der er de to nødvendige skridt, og kun de to.

--
Mvh. Mogens
B.Sc. i datalogi. Søger IT-job på Fyn!
www.momech.dk



Christian Joergensen (12-02-2002)
Kommentar
Fra : Christian Joergensen


Dato : 12-02-02 13:11

On Tue, 12 Feb 2002 01:04:22 +0100, Lasse Hedegaard wrote:

> elseif (!checkdnsrr($host,"MX")) return false;

Check på "ALL" istedet.

--
Christian Jørgensen | Never make any mistaeks.
http://www.razor.dk |

Lasse Hedegaard (12-02-2002)
Kommentar
Fra : Lasse Hedegaard


Dato : 12-02-02 15:35

Christian Joergensen skrev:

>Check på "ALL" istedet.

Hmm...

Warning: Type 'ALL' not supported

Hva' så?

venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - Få fjernet SIM-låsen fra din mobiltelefon!

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

Månedens bedste
Årets bedste
Sidste års bedste