/ 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
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

Søg
Reklame
Statistik
Spørgsmål : 177458
Tips : 31962
Nyheder : 719565
Indlæg : 6408169
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste