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

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Request("noget") vs. Request.Form("noget")
Fra : Martin Kruse


Dato : 14-06-01 22:53

Jeg har nu i et par kode-eksempler jeg har set rundt omkring set at nogen
bare skriver
Request("noget")
hvis de skal kalde på et formular-felt der hedder "noget"
Men skal man ikke skrive Request.Form??
Hvad hvis man også kalder på en cookie der hedder noget på samme side? Så må
der da gå helt kage i den.
Hvorfor skriver man i de eksempler ikke
Request.Form("noget")
i stedet for
Request("noget")
???

Bare noget jeg efterhånden er blevet mere og mere i tvivl om...
--

MK
http://www.msdesign.dk
Webdesign til alle & portal til verden




 
 
Mathias Birkvad (15-06-2001)
Kommentar
Fra : Mathias Birkvad


Dato : 15-06-01 06:29

Hej Martin,

Request("noget") og Request.Form("noget")

Request("noget") bruges i URL.
Dvs at du kan hente en parameter fra din URL f.eks. forside.asp?noget=2
Så henter du værdien 2 ved at skrive Request("noget")

Request.Form("noget") bruges når du "poster" en form fra en anden side.
F.eks. kan du på siden x.asp have en for som poster til siden y.asp. Værdien
for feltet "noget" (kunne være en teksboks) på x.asp kan så hentes frem på
y.asp ved at skrive Request.Form("noget")

Request-objektet har intet med Cookies at gøre..

Mhv.

Mathias Birkvad

"Martin Kruse" <martin.kruse@get2net.dk> wrote in message
news:9gbbmt$281j$1@news.cybercity.dk...
> Jeg har nu i et par kode-eksempler jeg har set rundt omkring set at nogen
> bare skriver
> Request("noget")
> hvis de skal kalde på et formular-felt der hedder "noget"
> Men skal man ikke skrive Request.Form??
> Hvad hvis man også kalder på en cookie der hedder noget på samme side? Så

> der da gå helt kage i den.
> Hvorfor skriver man i de eksempler ikke
> Request.Form("noget")
> i stedet for
> Request("noget")
> ???
>
> Bare noget jeg efterhånden er blevet mere og mere i tvivl om...
> --
>
> MK
> http://www.msdesign.dk
> Webdesign til alle & portal til verden
>
>
>



Peter Lykkegaard (15-06-2001)
Kommentar
Fra : Peter Lykkegaard


Dato : 15-06-01 07:11


"Mathias Birkvad" <birkvad@telefona.dk> wrote in message
news:3b299c94$0$26577$4d4eb98e@read.news.dk.uu.net...
>
> "Martin Kruse" <martin.kruse@get2net.dk> wrote in message
> news:9gbbmt$281j$1@news.cybercity.dk...

> > Hvorfor skriver man i de eksempler ikke
> > Request.Form("noget")
> > i stedet for
> > Request("noget")
> > ???
> >
> Request("noget") bruges i URL.

Nope, der bruges
Request.Querystring("Noget")
Ellers får du samme problem, som ganske nydeligt beskrevet af Martin Kruse

> Request-objektet har intet med Cookies at gøre..

Cookies er en del af Request objectet - fra MSDN

"Collections
ClientCertificate The values of fields stored in the client certificate
that is sent in the HTTP request.
Cookies The values of cookies sent in the HTTP request.
Form The values of form elements in the HTTP request body.
QueryString The values of variables in the HTTP query string.
ServerVariables The values of predetermined environment variables. "

mvh/Peter Lykkegaard



Peter Lykkegaard (15-06-2001)
Kommentar
Fra : Peter Lykkegaard


Dato : 15-06-01 07:13


"Martin Kruse" <martin.kruse@get2net.dk> wrote in message
news:9gbbmt$281j$1@news.cybercity.dk...

> Hvorfor skriver man i de eksempler ikke
> Request.Form("noget")
> i stedet for
> Request("noget")

Sløseri - dovenskab - manglende kendskab til hvordan tingene hænger sammen
Fejlagtig/mangelfuld eksempelkode der kopieret/gentaget x antal gange, før
der er en der råber gevaldt
You name it

Keep up the good work - Peter Lykkegaard



Jesper Stocholm (15-06-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 15-06-01 09:19

"Peter Lykkegaard" <polonline@hot.mail.com> wrote in
news:FDhW6.13$uf2.2916@news.get2net.dk:

>
> "Martin Kruse" <martin.kruse@get2net.dk> wrote in message
> news:9gbbmt$281j$1@news.cybercity.dk...
>
>> Hvorfor skriver man i de eksempler ikke
>> Request.Form("noget")
>> i stedet for
>> Request("noget")
>
> Sløseri - dovenskab - manglende kendskab til hvordan tingene hænger
> sammen Fejlagtig/mangelfuld eksempelkode der kopieret/gentaget x antal
> gange, før der er en der råber gevaldt
> You name it
>

mjaeh ... jeg har fundet en anvendelse af request("noget") til logon på fx
administrationsdelen af mit website. Ved anvendelse af request("noget") har
jeg både mulighed for at logge ind direkte på websiden med en POST-form - så
andre ikke kan stå bagved og aflure min kode fra URL - og jeg har mulighed
for at bookmarke min valideringsside med mit login+pswd direkte i URL ... så
slipper jeg for at skulle indtaste password etc ved logon herhjemmefra.


--
I wrote to George W. Bush - see why at
http://stocholm.dk/emailgeorgewbush.asp

- Jesper Stocholm - http://stocholm.dk

Allan Ebdrup (15-06-2001)
Kommentar
Fra : Allan Ebdrup


Dato : 15-06-01 10:15


"Jesper Stocholm" <spam@stocholm.dk> skrev i en meddelelse
news:Xns90C16929A6894spamstocholmdk@192.38.208.81...
> "Peter Lykkegaard" <polonline@hot.mail.com> wrote in
> news:FDhW6.13$uf2.2916@news.get2net.dk:
>
> >
> > "Martin Kruse" <martin.kruse@get2net.dk> wrote in message
> > news:9gbbmt$281j$1@news.cybercity.dk...
> >
> >> Hvorfor skriver man i de eksempler ikke
> >> Request.Form("noget")
> >> i stedet for
> >> Request("noget")
> >
> > Sløseri - dovenskab - manglende kendskab til hvordan tingene hænger
> > sammen Fejlagtig/mangelfuld eksempelkode der kopieret/gentaget x antal
> > gange, før der er en der råber gevaldt
> > You name it
> >
>
> mjaeh ... jeg har fundet en anvendelse af request("noget") til logon på fx
> administrationsdelen af mit website. Ved anvendelse af request("noget")
har
> jeg både mulighed for at logge ind direkte på websiden med en POST-form -

> andre ikke kan stå bagved og aflure min kode fra URL - og jeg har mulighed
> for at bookmarke min valideringsside med mit login+pswd direkte i URL ...

> slipper jeg for at skulle indtaste password etc ved logon herhjemmefra.

Hej Jesper
Det bør laves med en kombination af Request.Form og Request.QueryString,
hvis andre skal kunne læse koden og hvis du vil være sikker på at du selv
kan læse koden om et halvt år.
Derudover kan det samme opnås hvis du understøtter automatisk login vha
cookies.

MVH
Allan Ebdrup



Jesper Stocholm (15-06-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 15-06-01 10:26

"Allan Ebdrup" <ebdrup@ti-fire.dk> wrote in
news:9gcjl7$m9j$1@news.cybercity.dk:

>
> "Jesper Stocholm" <spam@stocholm.dk> skrev i en meddelelse
> news:Xns90C16929A6894spamstocholmdk@192.38.208.81...
>> "Peter Lykkegaard" <polonline@hot.mail.com> wrote in
>> news:FDhW6.13$uf2.2916@news.get2net.dk:
>> > "Martin Kruse" <martin.kruse@get2net.dk> wrote in message
>> > news:9gbbmt$281j$1@news.cybercity.dk...
>> >
>> >> Hvorfor skriver man i de eksempler ikke
>> >> Request.Form("noget")
>> >> i stedet for
>> >> Request("noget")
>> >
>> > Sløseri - dovenskab - manglende kendskab til hvordan tingene hænger
>> > sammen Fejlagtig/mangelfuld eksempelkode der kopieret/gentaget x
>> > antal gange, før der er en der råber gevaldt
>> > You name it
>> mjaeh ... jeg har fundet en anvendelse af request("noget") til logon
>> på fx administrationsdelen af mit website. Ved anvendelse af
>> request("noget") har jeg både mulighed for at logge ind direkte på
>> websiden med en POST-form - så andre ikke kan stå bagved og aflure min
>> kode fra URL - og jeg har mulighed for at bookmarke min
>> valideringsside med mit login+pswd direkte i URL ... så slipper jeg
>> for at skulle indtaste password etc ved logon herhjemmefra.
>
> Hej Jesper
> Det bør laves med en kombination af Request.Form og
> Request.QueryString, hvis andre skal kunne læse koden og hvis du vil
> være sikker på at du selv kan læse koden om et halvt år.
> Derudover kan det samme opnås hvis du understøtter automatisk login vha
> cookies.
>

det kan du have ret i ... jeg har selv lige færdiggjort et stort projekt på
mit arbejde, og da havde jeg ukritisk lavet det med request() i stedet for
de specifikke referencer ... da jeg så havde holdt ferie i et par uger var
det meeeget svært at se, hvad der kom fra hvad.

men det er jo som man siger ... brændt barn lugter ilde ... eller sådan
noget ...

--
I wrote to George W. Bush - see why at
http://stocholm.dk/emailgeorgewbush.asp

- Jesper Stocholm - http://stocholm.dk

Jonathan Stein (15-06-2001)
Kommentar
Fra : Jonathan Stein


Dato : 15-06-01 09:24

Martin Kruse wrote:

> Jeg har nu i et par kode-eksempler jeg har set rundt omkring set at nogen
> bare skriver
> Request("noget")

Det kan være praktisk hvis ens side både kan kaldes med GET og POST metoden. -
Ellers kan det bare være dovenskab. Dokumentationen siger:
All variables can be accessed directly by calling Request(variable) without
the collection name. In this case, the Web server searches the collections in
the following order.
QueryString
Form
Cookies
ClientCertificate
ServerVariables

- så hvis du både har et form-felt, der hedder "noget" og en cookie, der også
hedder "noget", vil Request("noget") give dig form-feltet.
Jeg ved ikke hvor meget krudt, det tager at søge disse collections igennem,
men i hvert fald teoretisk bør det være hurtigere at referere med "fuld
reference" - altså f.eks. Request.Form, Request.Cookies o.s.v.

M.v.h.

Jonathan

--
jsp-hotel.dk tilbyder profesionelle webhoteller med bl.a. Resin JSP,
PHP, MySQL, SSH/Telnet adgang, rå log-filer, grafisk statistik og
99% oppetidsgaranti.
http://www.jsp-hotel.dk/





Allan Ebdrup (15-06-2001)
Kommentar
Fra : Allan Ebdrup


Dato : 15-06-01 10:23

"Jonathan Stein" <jstein@image.dk> skrev i en meddelelse
news:3B29C607.50DBA8BD@image.dk...
> Martin Kruse wrote:
>
> > Jeg har nu i et par kode-eksempler jeg har set rundt omkring set at
nogen
> > bare skriver
> > Request("noget")
>
> Det kan være praktisk hvis ens side både kan kaldes med GET og POST
metoden. -
> Ellers kan det bare være dovenskab. Dokumentationen siger:
> All variables can be accessed directly by calling Request(variable)
without
> the collection name. In this case, the Web server searches the collections
in
> the following order.
> QueryString
> Form
> Cookies
> ClientCertificate
> ServerVariables
>
> - så hvis du både har et form-felt, der hedder "noget" og en cookie, der
også
> hedder "noget", vil Request("noget") give dig form-feltet.
> Jeg ved ikke hvor meget krudt, det tager at søge disse collections
igennem,
> men i hvert fald teoretisk bør det være hurtigere at referere med "fuld
> reference" - altså f.eks. Request.Form, Request.Cookies o.s.v.

Hej Jonathan
Det er meget hurtiger at bruge den fulde reference, første gang du får fat i
Resuest.ServerVariables hentes de alle sammen. Men det er ikke det vigtigste
det vigtigste er at koden nemt bliver meget rodet når man kun bruger
Request("noget"), det kan jo betyde en eller flere af 5 forskellige ting, og
jeg garanterer dig at du glemmer at få skrevet kommentare der beskriver at
du i dette tilfælde kun mener Request.Form og i det andet tilfælde mener
både Request.Form og Request.Querystring. Det handler om gode vaner og
læselig kode.

MVH
Allan Ebdrup



Peter Lykkegaard (15-06-2001)
Kommentar
Fra : Peter Lykkegaard


Dato : 15-06-01 10:50


"Jonathan Stein" <jstein@image.dk> wrote in message
news:3B29C607.50DBA8BD@image.dk...
> Martin Kruse wrote:
>
> > Jeg har nu i et par kode-eksempler jeg har set rundt omkring set at
nogen
> > bare skriver
> > Request("noget")
>
> Det kan være praktisk hvis ens side både kan kaldes med GET og POST
metoden. -
> Ellers kan det bare være dovenskab.

For lige at slå det helt fast med syvtommer søm
Lad vær med at bruge Request("noget")
1) Du tillader alle at bruge POST
2) Du sætter din sikkerhed over styr ved _ikke_ at tjekke alt hvad der
kommer ind via post
Man kan dog lave de samme tricks via GET, men det kræver lidt mere
benarbejde af misæderen

Hvis du vil bruge Request("noget"), så for min skyld ingen alarm

mvh/Peter Lykkegaard



Brian H. Madsen - Pc~ (15-06-2001)
Kommentar
Fra : Brian H. Madsen - Pc~


Dato : 15-06-01 12:15

Hey

Funny that this topic should arise the very same day when I had to smack a
junior for doing exactly that (e.g.. Request("noget")) in a login script.

He did though have a few valid comments on why he did it exactly as he did.

1) The script is for an intranet (so no outside 'POST' will get there
anyways)
2) Request("Noget") basically just takes the very first variable it hits on
that has the name "Noget" and in this case the variable was 'POSTED' from a
login form.
3) He was lazy and couldn't be bothered doing the full Request.Form("Noget")
(this will be taken up at a later point for discussion between the Director,
Team manager (me) and the rogue ASP'er)

I agree with Peter Lykkegaard totally that using Request("Noget") instead of
the proper command is complete and utter laziness, punishable by removal of
keyboard from workstation.

So, please, for your own coding's sake. Use the full length command and you
will certainly find that your code is a lot more readable by others.


--
Regards
Brian H. Madsen
Snr Designer & Developer
Pc Plus Web Design
http://www.pluswebdesign.com.au
Brian@pluswebdesign.com.au




Peter Lykkegaard (15-06-2001)
Kommentar
Fra : Peter Lykkegaard


Dato : 15-06-01 13:14


"Brian H. Madsen - PcPlus Web Design" <brian@pluswebdesign.com.au> wrote in
message news:3b29ec7f$0$24571@echo-01.iinet.net.au...
> 3) He was lazy and couldn't be bothered doing the full
Request.Form("Noget")
> (this will be taken up at a later point for discussion between the
Director,
> Team manager (me) and the rogue ASP'er)
>
Maybe a couple of hours with some old typewriter could do the trick

Being lazy not writing the five characters would spare the coder not even a
full second even using the preferred two finger system...
Later on this costsaving act will cost the company a couple hours to say the
least for other developers to figure out what's happening in the code
Because most of the time the lazy person who gives a heck about typing the
proper sequence (object.property.method) doesn't give a heck 'bout typing
any comments as well
And obvious the lazy developer are using z, x, y style for vaiable names
instread of the prober descriptive variable names with prefix as well as
suffix.
And ofcourse who cares about documentation

Everything is fine and dandy - until the utterly day when the lazy person
has to maintain code made by any other lazy developer - then hell breaks
loose...
Maintaining prober code with full documentation is a peace of cake - and
this is what's laziness means

Keep up the spirit - and do it right and prober first time

- Peter Lykkegaard



Brian H. Madsen - Pc~ (16-06-2001)
Kommentar
Fra : Brian H. Madsen - Pc~


Dato : 16-06-01 01:43

Thanks Peter,

I'll print your reply and smack up on the wall in the office!!! he hehhee..

Have a good one!!


--
Regards
Brian H. Madsen
Snr Designer & Developer
Pc Plus Web Design
http://www.pluswebdesign.com.au
Brian@pluswebdesign.com.au



Jonathan Stein (15-06-2001)
Kommentar
Fra : Jonathan Stein


Dato : 15-06-01 14:13

Peter Lykkegaard wrote:

> > > Jeg har nu i et par kode-eksempler jeg har set rundt omkring set at
> nogen
> > > bare skriver
> > > Request("noget")
> >
> > Det kan være praktisk hvis ens side både kan kaldes med GET og POST
> metoden. -
> > Ellers kan det bare være dovenskab.
>
> For lige at slå det helt fast med syvtommer søm
> Lad vær med at bruge Request("noget")
> 1) Du tillader alle at bruge POST

Ja, - hvad skulle problemet være i det? Hvis man ikke ønsker POST's slår
man muligheden fra på serveren.

> 2) Du sætter din sikkerhed over styr ved _ikke_ at tjekke alt hvad der
> kommer ind via post

Man kontrollerer naturligvis både POST og GET variable lige grundigt!

> Hvis du vil bruge Request("noget"), så for min skyld ingen alarm

Tak.

Jeg bruger den som nævnt i kode, hvor request-metoden ikke altid vil være
den samme. Ved Cookies og ServerVariables bruger jeg altid den fulde
henvisning. (Af hensyn til sikkerhed, læselighed og performance).

M.v.h.

Jonathan

--
jsp-hotel.dk tilbyder profesionelle webhoteller med bl.a. Resin JSP,
PHP, MySQL, SSH/Telnet adgang, rå log-filer, grafisk statistik og
99% oppetidsgaranti.
http://www.jsp-hotel.dk/





Lars Hoffmann (15-06-2001)
Kommentar
Fra : Lars Hoffmann


Dato : 15-06-01 15:59

Jonathan Stein wrote:
>
> Jeg bruger den som nævnt i kode, hvor request-metoden ikke altid vil være
> den samme. Ved Cookies og ServerVariables bruger jeg altid den fulde
> henvisning. (Af hensyn til sikkerhed, læselighed og performance).

hvorfor bruger du så ikke f.eks,

if request.querystring("noget") <> "" then
   variabel = request.querystring("noget")
else
   variabel = request.form("noget")
end if

Det er da pænere kode.
--
/Lars

HTML software: <http://go.to/HTMLEasyColors>
Brug venligst Re: og ikke Sv: ved svar, da beskeder
der begynder med Sv: bliver slettet fra mange servere

Jonathan Stein (15-06-2001)
Kommentar
Fra : Jonathan Stein


Dato : 15-06-01 23:05

Lars Hoffmann wrote:

> > Jeg bruger den som nævnt i kode, hvor request-metoden ikke altid vil være
> > den samme. Ved Cookies og ServerVariables bruger jeg altid den fulde
> > henvisning. (Af hensyn til sikkerhed, læselighed og performance).
>
> hvorfor bruger du så ikke f.eks,
>
> if request.querystring("noget") <> "" then
> variabel = request.querystring("noget")
> else
> variabel = request.form("noget")
> end if

Fordi if Request.QueryString("noget").Count > 0 ... ville være mere korrekt, og
fordi der er flere meninger om følgende:

> Det er da pænere kode.

M.v.h.

Jonathan

--
jsp-hotel.dk tilbyder profesionelle webhoteller med bl.a. Resin JSP,
PHP, MySQL, SSH/Telnet adgang, rå log-filer, grafisk statistik og
99% oppetidsgaranti.
http://www.jsp-hotel.dk/





Janus Klok Lauritsen (15-06-2001)
Kommentar
Fra : Janus Klok Lauritsen


Dato : 15-06-01 19:07

Nogle syntes nok det er nemmere at skrive Request("noget") men det er
egentlig dårlig kode.
Når man skriver request("noget"), skal serveren kigge i både Form og
querystring ( og sikkert også Cookies og ServerVariables) og det er klart at
det laver koden langsommere.
Så udspecificer hvor du vil hente din værdi !
Mvh
Janus
"Martin Kruse" <martin.kruse@get2net.dk> wrote in message
news:9gbbmt$281j$1@news.cybercity.dk...
> Hvorfor skriver man i de eksempler ikke
> Request.Form("noget")
> i stedet for
> Request("noget")
> ???
>
> Bare noget jeg efterhånden er blevet mere og mere i tvivl om...




Søg
Reklame
Statistik
Spørgsmål : 177556
Tips : 31968
Nyheder : 719565
Indlæg : 6408862
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste