Avatar billede deurell Nybegynder
19. februar 2002 - 12:12 Der er 5 kommentarer og
2 løsninger

Valideringsproblemer i asp side..

jeg kalder denne side ved hjælp af en form med method="post". Problemet er at den skriver til tekstfilen ligegyldigt om der er indhold i "CONTENT_LENGHT".

Check eventuelt koden for fejl. Den er sat ind som første kommentar.

Bliver indholdet i "CONTENT_LENGTH"?

Avatar billede deurell Nybegynder
19. februar 2002 - 12:12 #1
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/hiddenstytext.css">
<title>Læse fra tekstfiler</title>
</head>
<body class="bo2">
<table class="message">
<%
Dim fso, f, filespec, oldFile, myName
    If Request.ServerVariables("CONTENT_LENGTH") <> 0 Then
    myName = Trim(Request.Form("navn"))
    Set fso = CreateObject("Scripting.FileSystemObject")
    filespec = Server.Mappath("../../db/message.txt")
    Set f = fso.OpenTextFile(filespec,1)


    oldFile = f.ReadAll

    Set f = fso.OpenTextFile(filespec,2)

    f.WriteLine myName

    f.Write oldFile

    f.Close
    Set fso = CreateObject("Scripting.FileSystemObject")
    filespec = Server.Mappath("../../db/message.txt")
    Set f = fso.OpenTextFile(filespec,1)


    Do While not f.AtEndOfStream

    Response.write "<tr><td class='c2'>" & f.ReadLine & "</tr></td><tr><td class='tom'></tr></td>"

    Loop
Else

    Set fso = CreateObject("Scripting.FileSystemObject")
    filespec = Server.Mappath("../../db/message.txt")
    Set f = fso.OpenTextFile(filespec,1)


    Do While not f.AtEndOfStream

    Response.write "<tr><td class='c2'>" & f.ReadLine & "</tr></td><tr><td class='tom'></tr></td>"

    Loop

End If
f.Close
%>
</table>
Avatar billede tmceu Praktikant
19. februar 2002 - 12:50 #2
Jeg ville ændre If Request.ServerVariables("CONTENT_LENGTH") <> 0 Then til If Request.ServerVariables("CONTENT_LENGTH") > 0 Then.

Jeg bruger dog sjældent CONTENT_LENGTH, men har i stedet et skjult felt i min formular, som jeg tester på indholdet af. Har dette felt en værdi, er formen postet. Eksempelvis:

<INPUT TYPE="HIDDEN" NAME="HIDDEN" VALUE="SUBMITTED">
Avatar billede deurell Nybegynder
19. februar 2002 - 12:56 #3
Det handler jo desværre bare ikke om hvorvidt den er sendt...den ville jo ikke kalde siden med scriptet på medmindre den var sendt.
Problemet ligger i at der skal være indhold i et textfield.
Prøv selv at kalde filen fra denne formularside. (tænk ikke på udseende)
www.vinakkerdig.dk/hidden/messagewrite.asp
Prøv både at submitte med og uden at udfylde textfield.
Prøv oxo at gå direkte ind i www.vinakkerdig.dk/hidden/message.asp og refresh siden.
I den situation skriver den til tekstfilen og det må den sq-fandeme ikke.
Avatar billede tmceu Praktikant
19. februar 2002 - 13:03 #4
Det gør den altså ikke hos mig. Men den vil gøre det, hvis du først indtaster en besked på http://www.vinakkerdig.dk/hidden/messagewrite.asp og derefter på http://www.vinakkerdig.dk/hidden/message.asp laver en refresh. Den vil som standard advare dig om, at du ikke kan refreshe siden, uden at sende data igen. Gør du det alligevel, vil den gensende nøjagtig de data du sendte første gang.
Avatar billede deurell Nybegynder
19. februar 2002 - 13:08 #5
er der ikke en måde at undgå det på?
f.eks. redirecte til en anden side efter scriptet er kørt hvor man så ikke beder om noget fra formen?
Avatar billede deurell Nybegynder
19. februar 2002 - 13:20 #6
Hmmm det jeg skrev sidst virkede sq....men du gav mig inspiration til at finde løsningen så du får halvdelen af pointene.
Jeg håber at det er ok*S*
Avatar billede tmceu Praktikant
19. februar 2002 - 13:28 #7
Point er ikke det væsentligste, så det er helt ok :-)
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