07. april 2003 - 15:19Der er
23 kommentarer og 1 løsning
Data overført i URL går tabt ved redirect.
Hej.
Jeg har et ASP Dokument, der uploader en fil brugeren har valgt. Når upload er udført viderføres brugeren til en formular der skal udfyldes. I denne formular er filnavnet blevet overført til et "hidden" felt. Men da jeg skal sørge for, at brugeren udfylder SAMTLIGE felter, får jeg et problem. For når formularen sendes til "gemdata.asp", hvori der tjekkes om alle felter er udfyldt, så opstår mit problem. For hvis alle felter ikke er udfyldt, sendes brugeren tilbage til formen - men nu er filnavnet selvfølgelig forsvundet.
mpg = "mproduktgruppe" if produktgruppe = "" then response.redirect("x.asp?fejl="&mpg&"&overskrift="&overskrift&"&tekst="&tekst&"&pris="&pris&"") end if
Du sender det til samme side.
øverste: fejl = request("fejl") if fejl = "mproduktgruppe" then error = "Du skal oprette produktgrupper før du kan oprette produkter" end if
- helt nøjagtig er jeg i tvivl om hvor meget jeg skal skrive - og hvor. Mit system er upbygget således :
1. [uploadgfx.asp] - Upload [vidersender efter endt arbejde til punkt 2] 2. [edit.asp] ------ Indeholder formen der bliver valideret 3. [gemdata.asp] --- Her valideres indholdet af formen. Bruger sendes tilbage til edit.asp hvis et af felterne ikke er udfyldt.
den tjekker om feltet produktgruppe er tom, hvis den er det bliver du redirectet... og sender overskriften, teksten og prisen med til den samme side, således at det ikke skal udfyldes igen.
ja det kan du sagtens, men så har man mulighed for at ændre de data du sender med over ved at ændre i querystring'en.. det er ikke sikkert det er et problem i dit tilfælde, du skal bare være opmærksom på at man kan :-)
Jeg kan ikke helt få det til at virke. Har flg. kode :
Edit.asp : <%
if request.querystring("mode")="fil" then response.write session("file") response.write session("besked") end if
response.write besked
%>
gemdata.asp : ' Hvis feltet er tomt, sendes brugeren tilbage til formen, med besked om at udfylde feltet If var1 = "" OR var2 = "" OR var3 = "" OR var4 = "" OR var5 = "" OR var6 = "" Then session("file")=var6 response.redirect "edit.asp?mode=fil" session("besked")="hejsa" end if
if request.querystring("mode")="fil" then response.write session("file") response.write session("besked") end if response.write besked
%>
gemdata.asp : ' Hvis feltet er tomt, sendes brugeren tilbage til formen, med besked om at udfylde feltet If var1 = "" OR var2 = "" OR var3 = "" OR var4 = "" OR var5 = "" OR var6 = "" Then session("file")=var6 session("besked")="hejsa" response.redirect "edit.asp?mode=fil" end if
if request.querystring("mode")="fil" then response.write request.querystring("file") response.write request.querystring("besked") end if response.write besked
%>
gemdata.asp : ' Hvis feltet er tomt, sendes brugeren tilbage til formen, med besked om at udfylde feltet If var1 = "" OR var2 = "" OR var3 = "" OR var4 = "" OR var5 = "" OR var6 = "" Then session("file")=var6 session("besked")="hejsa" response.redirect "edit.asp?mode=fil&besked=hovsa du mangler at udfylde et eller andet&file="&var6 end if
Hvorfor vælger du den løsning i stedet for at validere formen inden den bliver sendt, og på klientens egen maskine?
Synes godt om
Ny brugerNybegynder
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.