|
| Felt må ikke være blankt/tomt Fra : Martin Ploug |
Dato : 24-04-09 10:50 |
|
Hej
Er der en hurtig og smart måde, hvorpå man med PHP kan
validere et felt for, om det er tomt?
Jeg har prøvet med:
if (empty($email))
if $email ==''
if $email ==' '
Men man kan godt bare trykke et par gange på mellemrumstasten,
og så bliver indtastningen godkendt.
Kan man gøre noget, der effektivt forhindrer det?
Mvh. Martin
| |
Dan Storm (24-04-2009)
| Kommentar Fra : Dan Storm |
Dato : 24-04-09 11:22 |
|
Martin Ploug skrev:
> Kan man gøre noget, der effektivt forhindrer det?
if(trim($email) == "")
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
People who claim they don't let little things bother
them have never slept in a room with a single mosquito.
| |
Martin Ploug (24-04-2009)
| Kommentar Fra : Martin Ploug |
Dato : 24-04-09 11:42 |
|
"Dan Storm" <shadyz_REMOVETHIS_@err0r.dk> skrev i meddelelsen
news:49f192c8$0$15878$edfadb0f@dtext01.news.tele.dk...
> Martin Ploug skrev:
>> Kan man gøre noget, der effektivt forhindrer det?
>
> if(trim($email) == "")
>
>
>
> --
> Dan Storm - storm at err0r dot dk / http://err0r.dk
>
> People who claim they don't let little things bother
> them have never slept in a room with a single mosquito.
Hej Dan
Alle tiders, if(trim($email) == "") ser ud til at gøre tricket.
Mange tak.
Mvh. Martin
| |
Martin Ploug (24-04-2009)
| Kommentar Fra : Martin Ploug |
Dato : 24-04-09 11:25 |
|
"Martin Ploug" <mploug@pc.dk> skrev i meddelelsen
news:49f18b4f$0$15898$edfadb0f@dtext01.news.tele.dk...
> Hej
>
> Er der en hurtig og smart måde, hvorpå man med PHP kan
> validere et felt for, om det er tomt?
>
> Jeg har prøvet med:
>
> if (empty($email))
> if $email ==''
> if $email ==' '
>
> Men man kan godt bare trykke et par gange på mellemrumstasten,
> og så bliver indtastningen godkendt.
> Kan man gøre noget, der effektivt forhindrer det?
>
> Mvh. Martin
Jeg tror i stedet jeg vil bruge en "rigtig" e-mail validering
Jeg har fundet:
if(!preg_match("^[a-zA-ZæøåÆØÅ0-9._-]+@[a-zA-ZæøåÆØÅ0-9-]+\.[a-zA-ZæøåÆØÅ.]{2,5}$",
$_POST['email']))
{
echo "E-mailadressen er ikke korrekt<br />";
}
fra http://www.eksperten.dk/guide/1078
Men jeg får en fejl No ending delimiter '^'.
Mangler der en / eller en \ et sted?
Mvh. Martin
| |
Martin Ploug (24-04-2009)
| Kommentar Fra : Martin Ploug |
Dato : 24-04-09 11:44 |
|
"Martin Ploug" <mploug@pc.dk> skrev i meddelelsen
news:49f19388$0$15881$edfadb0f@dtext01.news.tele.dk...
>
> "Martin Ploug" <mploug@pc.dk> skrev i meddelelsen
> news:49f18b4f$0$15898$edfadb0f@dtext01.news.tele.dk...
>> Hej
>>
>> Er der en hurtig og smart måde, hvorpå man med PHP kan
>> validere et felt for, om det er tomt?
>>
>> Jeg har prøvet med:
>>
>> if (empty($email))
>> if $email ==''
>> if $email ==' '
>>
>> Men man kan godt bare trykke et par gange på mellemrumstasten,
>> og så bliver indtastningen godkendt.
>> Kan man gøre noget, der effektivt forhindrer det?
>>
>> Mvh. Martin
>
> Jeg tror i stedet jeg vil bruge en "rigtig" e-mail validering
> Jeg har fundet:
>
> if(!preg_match("^[a-zA-ZæøåÆØÅ0-9._-]+@[a-zA-ZæøåÆØÅ0-9-]+\.[a-zA-ZæøåÆØÅ.]{2,5}$",
> $_POST['email']))
> {
> echo "E-mailadressen er ikke korrekt<br />";
> }
>
> fra http://www.eksperten.dk/guide/1078
>
> Men jeg får en fejl No ending delimiter '^'.
> Mangler der en / eller en \ et sted?
>
> Mvh. Martin
>
>
Der manglede vist lige en ^ lige før , $_POST['email'].
Det må skulle se sådan ud:
if(!preg_match("^[a-zA-ZæøåÆØÅ0-9._-]+@[a-zA-ZæøåÆØÅ0-9-]+\.[a-zA-ZæøåÆØÅ.]{2,5}$^",
$_POST['email']))
{
echo "E-mailadressen er ikke korrekt<br />";
}
Mvh. Martin
| |
Johan Holst Nielsen (24-04-2009)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 24-04-09 12:30 |
|
Martin Ploug wrote:
>
> "Martin Ploug" <mploug@pc.dk> skrev i meddelelsen
> news:49f19388$0$15881$edfadb0f@dtext01.news.tele.dk...
>>
>> "Martin Ploug" <mploug@pc.dk> skrev i meddelelsen
>> news:49f18b4f$0$15898$edfadb0f@dtext01.news.tele.dk...
>>> Hej
>>>
>>> Er der en hurtig og smart måde, hvorpå man med PHP kan
>>> validere et felt for, om det er tomt?
>>>
>>> Jeg har prøvet med:
>>>
>>> if (empty($email))
>>> if $email ==''
>>> if $email ==' '
>>>
>>> Men man kan godt bare trykke et par gange på mellemrumstasten,
>>> og så bliver indtastningen godkendt.
>>> Kan man gøre noget, der effektivt forhindrer det?
>>>
>>> Mvh. Martin
>>
>> Jeg tror i stedet jeg vil bruge en "rigtig" e-mail validering
>> Jeg har fundet:
>>
>> if(!preg_match("^[a-zA-ZæøåÆØÅ0-9._-]+@[a-zA-ZæøåÆØÅ0-9-]+\.[a-zA-ZæøåÆØÅ.]{2,5}$",
>> $_POST['email']))
>> {
>> echo "E-mailadressen er ikke korrekt<br />";
>> }
>>
>> fra http://www.eksperten.dk/guide/1078
>>
>> Men jeg får en fejl No ending delimiter '^'.
>> Mangler der en / eller en \ et sted?
>>
>> Mvh. Martin
>>
>>
>
> Der manglede vist lige en ^ lige før , $_POST['email'].
>
> Det må skulle se sådan ud:
>
> if(!preg_match("^[a-zA-ZæøåÆØÅ0-9._-]+@[a-zA-ZæøåÆØÅ0-9-]+\.[a-zA-ZæøåÆØÅ.]{2,5}$^",
> $_POST['email']))
> {
> echo "E-mailadressen er ikke korrekt<br />";
> }
Tjek den vil ikke acceptere alle domæner (selvom den vil acceptere de
fleste).
F.eks. .travel og .museum er udelukket.
Samme gælder nogle domæner ala ö - der kræves brugerne at skrive
puny-code versionen af domænenavnet ind
Så f.eks.
spam_1289324@jörgen.dk SKAL indtastes som punycode.
/Johan
| |
Stig Johansen (24-04-2009)
| Kommentar Fra : Stig Johansen |
Dato : 24-04-09 13:19 |
|
Johan Holst Nielsen wrote:
> Martin Ploug wrote:
>> Der manglede vist lige en ^ lige før , $_POST['email'].
>>
>> Det må skulle se sådan ud:
>>
>> if(!preg_match("^[a-zA-ZæøåÆØÅ0-9._-]+@[a-zA-ZæøåÆØÅ0-9-]+\
[a-zA-ZæøåÆØÅ.]{2,5}$^",
>> $_POST['email']))
>> {
>> echo "E-mailadressen er ikke korrekt<br />";
>> }
>
> Tjek den vil ikke acceptere alle domæner (selvom den vil acceptere de
> fleste).
>
> F.eks. .travel og .museum er udelukket.
>
> Samme gælder nogle domæner ala ö - der kræves brugerne at skrive
> puny-code versionen af domænenavnet ind
>
> Så f.eks.
>
> spam_1289324@jörgen.dk SKAL indtastes som punycode.
Jeg er ikke den store PHP-haj, men findes der ikke en MX-lookup funktion(i
PHP), som løser alle de der problemer?
--
Med venlig hilsen
Stig Johansen
| |
Johan Holst Nielsen (24-04-2009)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 24-04-09 13:40 |
|
Stig Johansen wrote:
> Jeg er ikke den store PHP-haj, men findes der ikke en MX-lookup funktion(i
> PHP), som løser alle de der problemer?
Jo - getmxrr()
Men i PRINCIPPET kan du også lave en e-mail via
johan@127.0.0.1 som er lige så gyldig (dog meget sjældent brugt).
Derudover har jeg har problemer med tidligere at getmxrr() returnerede
ikke fundet, på trods af domænet blev fundet (jeg undersøgte det ikke
videre dengang.)
Men ellers kunne man lave noget ala
list($user,$dom) = explode('@',$email,2);
if(getmxrr($dom,$mxrecords) === false) {
echo 'Ugyldigt domæne';
}
/johan
| |
Johan Holst Nielsen (24-04-2009)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 24-04-09 13:42 |
|
Johan Holst Nielsen wrote:
> Stig Johansen wrote:
>> Jeg er ikke den store PHP-haj, men findes der ikke en MX-lookup funktion(i
>> PHP), som løser alle de der problemer?
>
> Jo - getmxrr()
>
> Men i PRINCIPPET kan du også lave en e-mail via
>
> johan@127.0.0.1 som er lige så gyldig (dog meget sjældent brugt).
>
> Derudover har jeg har problemer med tidligere at getmxrr() returnerede
> ikke fundet, på trods af domænet blev fundet (jeg undersøgte det ikke
> videre dengang.)
Som der iøvrigt også står i docs
Note: This function should not be used for the purposes of address
verification. Only the mailexchangers found in DNS are returned,
however, according to » RFC 2821 when no mail exchangers are listed,
hostname itself should be used as the only mail exchanger with a
priority of 0.
Så der er en logisk årsag :) Så der skal nok bruges checkdnsrr() i så
fald :)
/Johan
| |
Martin Ploug (24-04-2009)
| Kommentar Fra : Martin Ploug |
Dato : 24-04-09 14:30 |
|
"Johan Holst Nielsen" <spam@phpgeek.dk> skrev i meddelelsen
news:49f1b3a0$0$90275$14726298@news.sunsite.dk...
> Johan Holst Nielsen wrote:
>> Stig Johansen wrote:
>>> Jeg er ikke den store PHP-haj, men findes der ikke en MX-lookup
>>> funktion(i
>>> PHP), som løser alle de der problemer?
>>
>> Jo - getmxrr()
>>
>> Men i PRINCIPPET kan du også lave en e-mail via
>>
>> johan@127.0.0.1 som er lige så gyldig (dog meget sjældent brugt).
>>
>> Derudover har jeg har problemer med tidligere at getmxrr() returnerede
>> ikke fundet, på trods af domænet blev fundet (jeg undersøgte det ikke
>> videre dengang.)
>
> Som der iøvrigt også står i docs
>
> Note: This function should not be used for the purposes of address
> verification. Only the mailexchangers found in DNS are returned,
> however, according to » RFC 2821 when no mail exchangers are listed,
> hostname itself should be used as the only mail exchanger with a
> priority of 0.
>
> Så der er en logisk årsag :) Så der skal nok bruges checkdnsrr() i så
> fald :)
>
> /Johan
Hej Johan
Tak for dine indlæg.
Ville du / man kunne udbygge tjekket, så man også ville kunne bruge domæner
som travel og museum, som du skriver?
Altså ville du så bygge videre på
list($user,$dom) = explode('@',$email,2);
if(getmxrr($dom,$mxrecords) === false) {
echo 'Ugyldigt domæne';
}
eller på
if(!preg_match("^[a-zA-ZæøåÆØÅ0-9._-]+@[a-zA-ZæøåÆØÅ0-9-]+\.[a-zA-ZæøåÆØÅ.]{2,5}$",
>> $_POST['email']))
eller hvordan?
Mvh. Martin
| |
Martin (24-04-2009)
| Kommentar Fra : Martin |
Dato : 24-04-09 16:30 |
|
Martin Ploug wrote:
> Ville du / man kunne udbygge tjekket, så man også ville kunne bruge domæner
> som travel og museum, som du skriver?
>
> if(!preg_match("^[a-zA-ZæøåÆØÅ0-9._-]+@[a-zA-ZæøåÆØÅ0-9-]+\.[a-zA-ZæøåÆØÅ.]{2,5}$",
Bare fjern det sidste 5 tal
altså
{2,}
Betyder
Minimum eller ligmed 2 eller undelig
Bemærk dog lige at jeg har haft problemer med at få mail() til at sende
til en adresse med æøå i, så jeg ville undgå æøå i mailadressen, og det
ved de fleste der ejer sådan et domæne også... håber man da :)
| |
Johan Holst Nielsen (24-04-2009)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 24-04-09 17:07 |
|
Martin wrote:
> Martin Ploug wrote:
>> Ville du / man kunne udbygge tjekket, så man også ville kunne bruge
>> domæner
>> som travel og museum, som du skriver?
>>
>> if(!preg_match("^[a-zA-ZæøåÆØÅ0-9._-]+@[a-zA-ZæøåÆØÅ0-9-]+\.[a-zA-ZæøåÆØÅ.]{2,5}$",
>
>
> Bare fjern det sidste 5 tal
> altså
> {2,}
>
> Betyder
> Minimum eller ligmed 2 eller undelig
>
> Bemærk dog lige at jeg har haft problemer med at få mail() til at sende
> til en adresse med æøå i, så jeg ville undgå æøå i mailadressen, og det
> ved de fleste der ejer sådan et domæne også... håber man da :)
Nej - Her og Fru jensen ved det ikke. Det bedste i så fald (hvis det er
en større webapp) er at lave en punycode converter. Der findes flere
scripts der kan det trick :)
/Johan
| |
Martin (24-04-2009)
| Kommentar Fra : Martin |
Dato : 24-04-09 18:28 |
|
Johan Holst Nielsen wrote:
> Martin wrote:
>> Martin Ploug wrote:
>>> Ville du / man kunne udbygge tjekket, så man også ville kunne bruge
>>> domæner
>>> som travel og museum, som du skriver?
>>>
>>> if(!preg_match("^[a-zA-ZæøåÆØÅ0-9._-]+@[a-zA-ZæøåÆØÅ0-9-]+\.[a-zA-ZæøåÆØÅ.]{2,5}$",
>>
>> Bare fjern det sidste 5 tal
>> altså
>> {2,}
>>
>> Betyder
>> Minimum eller ligmed 2 eller undelig
>>
>> Bemærk dog lige at jeg har haft problemer med at få mail() til at sende
>> til en adresse med æøå i, så jeg ville undgå æøå i mailadressen, og det
>> ved de fleste der ejer sådan et domæne også... håber man da :)
>
> Nej - Her og Fru jensen ved det ikke. Det bedste i så fald (hvis det er
> en større webapp) er at lave en punycode converter. Der findes flere
> scripts der kan det trick :)
Hr og Fru jensen køber heller ikke domæner
Men ja, altid bedre at lave bogstaverne om til det de reelt står for
Punycode converter er lige her hvis det skulle have interesse
< http://pear.php.net/package/Net_IDNA>
| |
Johan Holst Nielsen (24-04-2009)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 24-04-09 18:30 |
|
Martin wrote:
> Johan Holst Nielsen wrote:
>> Martin wrote:
>>> Bemærk dog lige at jeg har haft problemer med at få mail() til at sende
>>> til en adresse med æøå i, så jeg ville undgå æøå i mailadressen, og det
>>> ved de fleste der ejer sådan et domæne også... håber man da :)
>> Nej - Her og Fru jensen ved det ikke. Det bedste i så fald (hvis det er
>> en større webapp) er at lave en punycode converter. Der findes flere
>> scripts der kan det trick :)
>
> Hr og Fru jensen køber heller ikke domæner
Uenig... det er netop Hr og Fru Jensen, der køber hos discountudbyderen
o.lign... det er blevet mere og mere normalt.
Udover dette kan det ikke afvises at der sælges/gives e-mail-adresser
med æøå inkluderet - jeg kender i hvert fald ét sted.
/Johan
| |
Martin (24-04-2009)
| Kommentar Fra : Martin |
Dato : 24-04-09 18:38 |
|
Johan Holst Nielsen wrote:
> Martin wrote:
>> Johan Holst Nielsen wrote:
>>> Martin wrote:
>>>> Bemærk dog lige at jeg har haft problemer med at få mail() til at sende
>>>> til en adresse med æøå i, så jeg ville undgå æøå i mailadressen, og det
>>>> ved de fleste der ejer sådan et domæne også... håber man da :)
>>> Nej - Her og Fru jensen ved det ikke. Det bedste i så fald (hvis det er
>>> en større webapp) er at lave en punycode converter. Der findes flere
>>> scripts der kan det trick :)
>> Hr og Fru jensen køber heller ikke domæner
>
> Uenig... det er netop Hr og Fru Jensen, der køber hos discountudbyderen
> o.lign... det er blevet mere og mere normalt.
Nej, det er Hr og Fru HANSEN
>
> Udover dette kan det ikke afvises at der sælges/gives e-mail-adresser
> med æøå inkluderet - jeg kender i hvert fald ét sted.
Hvis du tænker på jubii mail eller hvad det nu hedder, mener de var
nogle af de første til at have (og understøtte) emailadresser med æøå i.
Men ellers så er det vel egentlig alle, også de billige, domæne sælgere
hvor det er muligt at købe æøå domæner, også uden nogen form for
advarsel, eller bemærkninger om problemet.
Med mit efternavn, har jeg stortset kun haft problemer, fx. bare i
lufthavnen. På hjemmesiden skal man jo skrive sit korrekte navn, men når
man så får billetten, så står der kun et A (og ikke 2 som ville være
normalt) og derfor så passer passet ikke til efternavnet, og det giver
altid lidt problemer.
I Tyrkiet var det rigtig slemt, skulle jeg prøve at tale med en som
overhovedet ikke kunne det nærmeste engelsk, tror det tog en halv time...
Nå, det var lidt af et sidespor...
Men anyways, har kun haft problemer med mit æøå domæne, mail() ville
ikke sende - kan selvfølgelig være det er rettet, det var tilbage i 4.2
tiden tror jeg...
| |
Kai Harrekilde-Peter~ (24-04-2009)
| Kommentar Fra : Kai Harrekilde-Peter~ |
Dato : 24-04-09 19:38 |
|
Martin <martin@aarhof.invalid> writes:
> Med mit efternavn, har jeg stortset kun haft problemer, fx. bare i
> lufthavnen. På hjemmesiden skal man jo skrive sit korrekte navn, men når
> man så får billetten, så står der kun et A (og ikke 2 som ville være
> normalt) og derfor så passer passet ikke til efternavnet, og det giver
> altid lidt problemer.
Selv simple ting som en bindestreg kan give uoverstigelige problemer
for de automatiske systemer
(BTDT)
Kai
--
Kai Harrekilde-Petersen <khp(at)harrekilde(dot)dk>
| |
Martin Ploug (26-04-2009)
| Kommentar Fra : Martin Ploug |
Dato : 26-04-09 13:01 |
|
"Martin" <maaNO@SPAMscandesigns.dk> skrev i meddelelsen
news:49f1db24$0$90264$14726298@news.sunsite.dk...
> Martin Ploug wrote:
>> Ville du / man kunne udbygge tjekket, så man også ville kunne bruge
>> domæner
>> som travel og museum, som du skriver?
>>
>> if(!preg_match("^[a-zA-ZæøåÆØÅ0-9._-]+@[a-zA-ZæøåÆØÅ0-9-]+\.[a-zA-ZæøåÆØÅ.]{2,5}$",
>
> Bare fjern det sidste 5 tal
> altså
> {2,}
>
> Betyder
> Minimum eller ligmed 2 eller undelig
>
> Bemærk dog lige at jeg har haft problemer med at få mail() til at sende
> til en adresse med æøå i, så jeg ville undgå æøå i mailadressen, og det
> ved de fleste der ejer sådan et domæne også... håber man da :)
Hej Martin
> Bare fjern det sidste 5 tal
> altså
> {2,}
>
> Betyder
> Minimum eller ligmed 2 eller undelig
Mange tak, det ser ud til at fungere.
Jeg har ikke lige testet det med at sende til mail adresser
med æ, ø og å, da jeg ikke lige har sådan en adresse.
Mvh. Martin
| |
Stig Johansen (24-04-2009)
| Kommentar Fra : Stig Johansen |
Dato : 24-04-09 16:07 |
|
Johan Holst Nielsen wrote:
>> Derudover har jeg har problemer med tidligere at getmxrr() returnerede
>> ikke fundet, på trods af domænet blev fundet (jeg undersøgte det ikke
>> videre dengang.)
Jo, men det, at et domæne er 'fundet' medfører ikke nødvendigvis der er en
MX record, der peger på det.
Man kan sagtens 'tage' et domæne, og udelukkende bruge det til eksempelvis
www.
På samme måde kan man også have et domæne, der udelukkende benyttes til
email, og ikke eks. www.
> Som der iøvrigt også står i docs
>
> Note: This function should not be used for the purposes of address
> verification.
Wasn't it the very purpose med spørgsmålet, altså at der eksisterer en MTA,
der er klar til at modtage mail til den givne adresse.
--
Med venlig hilsen
Stig Johansen
| |
Leif Neland (26-04-2009)
| Kommentar Fra : Leif Neland |
Dato : 26-04-09 07:52 |
|
Johan Holst Nielsen skrev:
>
> Samme gælder nogle domæner ala ö - der kræves brugerne at skrive
> puny-code versionen af domænenavnet ind
>
> Så f.eks.
>
> spam_1289324@jörgen.dk SKAL indtastes som punycode.
>
>
Jeg mener ikke emailadresser kan være punykodede.
På www er det kom afsender og modtager, der skal supportere det.
På mail skal det igennem et ukendt antal led, der alle skal supportere
det, så i det mindste er det ikke anbefalelsværdigt at bruge puny til email.
Leif
| |
Johan Holst Nielsen (26-04-2009)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 26-04-09 13:55 |
|
Leif Neland wrote:
> Johan Holst Nielsen skrev:
>
>>
>> Samme gælder nogle domæner ala ö - der kræves brugerne at skrive
>> puny-code versionen af domænenavnet ind
>>
>> Så f.eks.
>>
>> spam_1289324@jörgen.dk SKAL indtastes som punycode.
>>
>>
> Jeg mener ikke emailadresser kan være punykodede.
>
> På www er det kom afsender og modtager, der skal supportere det.
> På mail skal det igennem et ukendt antal led, der alle skal supportere
> det, så i det mindste er det ikke anbefalelsværdigt at bruge puny til
> email.
E-mails *skal* netop være punycode - af og til er det dog ikke
øjensynlig for brugeren, da programmet gør det automatisk. På WWW er det
klienten (browseren) der skal supportere det - nøjagtig det samme er
gældende i e-mail (i så fald typisk ens e-mail-program - alternativt
SMTP server - tvivler dog på disse laver denne konvertering).
/Johan
| |
|
|