21. februar 2002 - 00:32Der er
10 kommentarer og 1 løsning
Et rigtigt let valideringsspørsmål
Jeg submitter en formular uden at have udfyldt noget i et felt.
Formularen ser således ud: ------------------------------------------------------ <html> <body class="bo2"> <form action="messagetest.asp" METHOD="POST"> <INPUT type="text" name="navn" size="20"><BR><BR> <INPUT type="text" name="mail" size="20"><BR><BR> <TEXTAREA name="message" ROWS=6 Cols="40"></TEXTAREA><BR><BR> <INPUT type="submit" name="submit" value="tilføj besked"> </form> </body> </html> ------------------------------------------------------ messagetest.asp ser således ud: ------------------------------------------------------ <% If Request.ServerVariables("CONTENT_LENGTH") <> "" Then Response.Write "content length er forskellig fra ingenting" Else Response.Write "content length er ikke forskellig fra ingenting" End If %> ------------------------------------------------------
Resultatet på siden er at den skriver:
content length er forskellig fra ingenting
Men den skulle jo kun skrive denførste linie hvis der var sendt noget med fra formularen, og det er der jo ikke......hmmmm kan i hjælpe mig? den burde være let
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du har ret i at det må være noget i den stil som ligger i CONTENT_LENGTH, men jeg bruger jo allerede METHOD="post" så der er altså ikke noget(en querystring)i adresselinien. Så hvordan H..... undgår jeg at der bliver sendt noget som helst.
Jeg er godt klar over at den ikke lægger noget i adresselinjen når du bruger POST.
Meget kort forklaret er forskellen på GET og POST, at GET smider strengen i adresselinjen, POST gør ikke. Men selve indholdet at strengen er den samme.
Forslaget om at ændre det til GET (en enkelt gang), var mest begrundet med at det så ville illustrere for dig, hvad der bliver sendt når du poster formen. Det er nemlig det samme som der bliver sendt ved POST.
Eller sagt lidt tydeligere. Når du poster en form (med GET eller POST) sendes navnene på dine form-felter automatisk. Uanset om de har en value eller ej.
Hvorfor tester du ikke bare om der er en value i form-felterne. I stedet for at bruge ServerVariables til dette.
<% If (Request.Form("navn") <> "" OR Request.Form("mail") <> "" OR Request.Form("message") <> "") Then Response.Write "Der er da vist noget her" Else Response.Write "intet her" End If %>
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.