Avatar billede deurell Nybegynder
21. februar 2002 - 00:32 Der 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
Avatar billede deurell Nybegynder
21. februar 2002 - 00:50 #1
hmmmmm...
Jeg indsatte lige følgende linie i messagetest.asp

<%= "x" & Request.ServerVariables("CONTENT_LENGTH") & "x"%>

Hvilket gav dette resultat:

x43xcontent length er forskellig fra ingenting
Avatar billede deurell Nybegynder
21. februar 2002 - 00:51 #2
hvor kommer de 43 karaktere fra når der ikke er nogen value under de forskellige formfelter?
Avatar billede fet321 Nybegynder
21. februar 2002 - 07:58 #3
Når du poster ovenstående form uden at indtaste noget i felterne, resulterer de i en form streng som ser sådan ud

navn=&mail=&message=&submit=tilf%F8j+besked

Der er dine 43 karakterer :-)
Avatar billede fet321 Nybegynder
21. februar 2002 - 07:59 #4
Prøv eventuelt at ændre METHOD="get" og post din form.
Du kan se i adresselinjen hvad strengen indeholder.
Avatar billede deurell Nybegynder
21. februar 2002 - 10:16 #5
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.
Avatar billede fet321 Nybegynder
21. februar 2002 - 14:48 #6
Det ER DET der ligger i den CONTENT_LENGTH

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.
Avatar billede fet321 Nybegynder
21. februar 2002 - 14:53 #7
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   
%>
Avatar billede fet321 Nybegynder
09. juni 2002 - 01:05 #8
Lukketid!
Avatar billede deurell Nybegynder
11. juni 2002 - 12:54 #9
ja undskyld....du får lidt point
Avatar billede deurell Nybegynder
11. juni 2002 - 12:54 #10
tak for reminderen
Avatar billede fet321 Nybegynder
11. juni 2002 - 21:06 #11
tak for points
håber du fik hvad du skulle bruge
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester