09. maj 2002 - 12:55Der er
24 kommentarer og 2 løsninger
Post-submit i PSW = ingen submit ! ? ! ?
Hej
Hvorfor kan PSW (win xp) ikke håndtere et "post-submit", når den sagtens kan håndtere et "get-submit"?
[Formen bliver overhovedet ikke submittet ved brug af en "post-submit". Browseren springer ikke videre til den side, som der skal submittes til! Med "get-submit" er der ingen problemer.]
Det skal lige tilføjes, at hvis jeg oploader koden til min webserver, så virker "post-submit"-eksemplet fint, men hvorfor den ikke virker på min private webserver (win xp) ved jeg ikke.
har du nu fået 15 point mere at brænde af aspbegynder :D prøv at ændr din action fra en relativ til en absolut URL (enten localhost eller din server) og se om det dur.
se der kommer jeg jo til kort. jeg bruger selv JSP og der er ganske udemærkede off-line localhost server emuleringer, men jeg ved ikke hvorledes det virker med ASP.
man skal ikke bruge porte eller noget som helst til dette... det er nok bare at skrive filnavnet. alt der andet er kun til for at forvirre og gøre det sværere at føre over til en anden server.
Du er inde på noget der!!!! fordi hvis jeg henviser til en side, som ikke findes, skifter den faktisk over til denne side (mens browseren siger, at den ikke findes).
Problemet ligger faktisk et helt andet sted, hvilket ikke har noget at gøre med, om jeg tester offline eller online. Det har noget at gøre med den asp-kode, som findes på siden, som der submittes til, dvs. insert2.asp
Min egen teori er, at denne asp-kode er "forkert", hvorved formen ikke vil poste sine værdier og vender derfor tilbage til "insert.asp" (i modsætning til en "get-submit" som er "ligeglad"). Da jeg tester offline, går det så hurtigt, at jeg ikke når at opfatte, at den faktisk har været ovre på "insert2.asp" for at forsøge om den kan poste sine værdier (hvilket den ikke kan finde ud af i mit eksempel).
Så problemet ligger altså i min asp-kode:
<!--#include file ="../database/databaseConn.asp"--> <% if Request.ServerVariables("REQUEST_METHOD") = "POST" then
strSQL = "select * from ARTIKLER WHERE TITEL = '" & Request.form("titel") & "'" set rs = Conn.execute(strSQL) if rs.EOF then Session.LCID = 1030 strSQL = "INSERT INTO ARTIKLER (titel, forfatter, beskrivelse, filnavn, sektion, emne, dato) VALUES ('" & Request.form("titel") & "','" & Request.form("forfatter") & "','" & Request.form("beskrivelse") & "','" & Request.form("filnavn") & "','" & Request.form("sektion") & "','" & Request.form("emne") & "','" & Now() & "')" set rs = Conn.execute(strSQL) response.write("OK") else response.write"<script>alert('Denne artikel eksisterer allerede!');</script>" end if Conn.close
SÅ ER FEJLEN FUNDET: response.redirect ("oversigt.asp")
Jeg redirectede (ved korrekt indsættelse i databasen) til "oversigt.asp", som jeg ikke havde oprettet endnu.
Konklusion: Alt skal være i den fineste orden ved brug af "post-submit" ellers smides man bare tilbage (uden fejl-meddelelse). Så mens jeg kastede mig over filosofisk spørgsmål, skulle fejlen findes helt nede på jorden.
Det ville aldrig have sket med "get-submit" ;) for så havde browseren sagt, at siden ikke fandtes, hvorved man vidste at indsættelsen i databasen var gennemført, og man kunne fortsætte sin programmering.
PS. Skørehund skal du ikke have nogle point (jeg mangler at trykke 'svar').
>>begge Med den viden at man smides tilbage uden fejlmeddelse, så bliver man næsten nødt til at have en funktion på insert.asp, som fortæller brugeren at opdateringen ikke lykkedes, ellers vil han tro - lige som jeg gjorde - at submit/ok-knappen "havde sat sig fast".
Kender I til en sådan funktion, som kan fortælle brugeren, at der opstod en fejl?
Jo, jeg har en errors.asp, men der er vidst ingen grund til at gøre det på så grundlæggende et niveau, for jeg tror, at noget simpelt javascriopt sagtens ville kunne gøre det.... men dertil har jeg jo også 7½ points fra dig + dagens ration på 5 points til at spørge javascript-eksperterne om.
Igen, tak for hjælpen :-)
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.