Avatar billede aspbegynder Nybegynder
09. maj 2002 - 12:55 Der 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.]
Avatar billede keysersoze Guru
09. maj 2002 - 12:57 #1
PSW?

om du bruger post eller get burde ikke gøre nogen forskel - har du noget kode man kan se?
Avatar billede aspbegynder Nybegynder
09. maj 2002 - 12:58 #2
SUBMITTER FINT:
<form method="GET" name="insert" action="insert2.asp">
<br>
<fieldset style="padding: 2">
  <legend align="center">Indsæt ny artikel </legend>
&nbsp;<blockquote>
    <p>Titel <br>
  <input type="text" name="Titel" size="20"></p>
  <p>Forfatter<br>
  <input type="text" name="Forfatter" size="20"></p>
  <p>Beskrivelse<br>
  <input type="text" name="Beskrivelse" size="20"></p>
  <p>Filnavn<br>
  <input type="text" name="Filnavn" size="20"></p>
  <p>Sektion<br>
  <select size="1" name="Sektion">
  <option>Artikler</option>
  </select></p>
  <p>Emne<br>
  <select size="1" name="Emne">
  <option>Den menneskelige krise</option>
  </select></p>
  <p align="left"><input type="submit" value="Ok" name="Ok">&nbsp;
  <input type="reset" value="Annuller" name="Annuller"><font color="#004080"><INPUT border=0
                        src="../../images/KnapOk.gif" type=image name="I3" width="57" height="27" ></font></p>
  </blockquote>
  <p>&nbsp;</p>
  </fieldset></form>




SUBMITTER OVERHOVEDET IKKE - FORBLIVER PÅ DEN SAMME SIDE!?!?!?!?
<form method="POST" name="insert" action="insert2.asp">
<br>
<fieldset style="padding: 2">
  <legend align="center">Indsæt ny artikel </legend>
&nbsp;<blockquote>
    <p>Titel <br>
  <input type="text" name="Titel" size="20"></p>
  <p>Forfatter<br>
  <input type="text" name="Forfatter" size="20"></p>
  <p>Beskrivelse<br>
  <input type="text" name="Beskrivelse" size="20"></p>
  <p>Filnavn<br>
  <input type="text" name="Filnavn" size="20"></p>
  <p>Sektion<br>
  <select size="1" name="Sektion">
  <option>Artikler</option>
  </select></p>
  <p>Emne<br>
  <select size="1" name="Emne">
  <option>Den menneskelige krise</option>
  </select></p>
  <p align="left"><input type="submit" value="Ok" name="Ok">&nbsp;
  <input type="reset" value="Annuller" name="Annuller"><font color="#004080"><INPUT border=0
                        src="../../images/KnapOk.gif" type=image name="I3" width="57" height="27" ></font></p>
  </blockquote>
  <p>&nbsp;</p>
  </fieldset></form>
Avatar billede aspbegynder Nybegynder
09. maj 2002 - 13:02 #3
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.
Avatar billede =maddog= Nybegynder
09. maj 2002 - 13:15 #4
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.
Avatar billede aspbegynder Nybegynder
09. maj 2002 - 13:31 #5
he he - der kom hjæleren ;)

virker ikke:
<form method="POST" name="insert_artikel" action="http://localhost/sd/common/admin/insert2.asp">

virker:
1) <form method="POST" name="insert_artikel" action="http://www.minhjemmeside.dk/sd/common/admin/insert2.asp">

Hvor virker det ene mens det andet ikke gør?

Men problemet er, at jeg først skal test osv. før jeg uploader, så jeg vil allerhelst arbejde offline.

Kan man ikke omgå problemet på en smart måde?
Avatar billede aspbegynder Nybegynder
09. maj 2002 - 13:33 #6
Hvor virker = hvorfor virker

skal test = skal teste
Avatar billede =maddog= Nybegynder
09. maj 2002 - 13:37 #7
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.
Avatar billede keysersoze Guru
09. maj 2002 - 13:41 #8
normalt er der ingen problemer med at teste offline...
Avatar billede aspbegynder Nybegynder
09. maj 2002 - 13:44 #9
Jeg mistænker næsten PWS/browseren for at undersøge om der er tale om off- eller online side, og så såfald at det er det første, så siger den - nix, kan ikke! Fordi hvor meget forskel er der (set ud fra mit synspunkt) på
"http://localhost/sd/common/admin/insert2.asp"> og "http://www.minhjemmeside.dk/sd/common/admin/insert2.asp">
Avatar billede =maddog= Nybegynder
09. maj 2002 - 13:46 #10
du har glemt porten til localhost på din PWS. måske keysersoze kan hjælpe med porten i ASP i JSP er det 8100
http://localhost:8100/sd/common/admin/insert2.asp
Avatar billede keysersoze Guru
09. maj 2002 - 13:51 #11
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.

prøv at test med denne;

<form name="form1" method="post" action="siden_findes_ikke.asp">
    <input type="text" name="textfield">
    <input type="submit" name="Submit" value="Submit">
</form>
Avatar billede =maddog= Nybegynder
09. maj 2002 - 13:52 #12
keysersoze> takker. så lærte jeg det.
Avatar billede aspbegynder Nybegynder
09. maj 2002 - 14:02 #13
keysersoze >>

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

    response.redirect ("oversigt.asp")
end if
%>
Avatar billede =maddog= Nybegynder
09. maj 2002 - 14:06 #14
jeg er ikke inde i ASP, men har du ikke glemt at escape nogen " i din QUERY - altså \"?
Avatar billede keysersoze Guru
09. maj 2002 - 14:10 #15
så lav din asp-kode om til

<%

response.write "dette er en test"

%>

og se om det så virker...
Avatar billede aspbegynder Nybegynder
09. maj 2002 - 14:19 #16
Den skrev: "dette er en test"
Avatar billede =maddog= Nybegynder
09. maj 2002 - 14:22 #17
du har glemt at escape dine ".
" dette er en streng med \"2\" anførselstegn "
Avatar billede =maddog= Nybegynder
09. maj 2002 - 14:24 #18
jeg vrøvler. glem det. undskylder. glem det. det er singleqoutes.
Avatar billede aspbegynder Nybegynder
09. maj 2002 - 14:25 #19
=maddog= >>
Jeg er ikke helt med, hvilket linie tænker du på?
Avatar billede aspbegynder Nybegynder
09. maj 2002 - 14:25 #20
=maddog= >>
>glem det.
Ok
Avatar billede aspbegynder Nybegynder
09. maj 2002 - 14:36 #21
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').
Avatar billede aspbegynder Nybegynder
09. maj 2002 - 14:37 #22
point (jeg mangler = points (du mangler
Avatar billede =maddog= Nybegynder
09. maj 2002 - 14:41 #23
behold mine 7,5 selv. du trænger mere til dem :)
Avatar billede aspbegynder Nybegynder
09. maj 2002 - 14:45 #24
>>=maddog=
Tak :)

>>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?
Avatar billede =maddog= Nybegynder
09. maj 2002 - 15:20 #25
er der ikke en pendant til errorPage i ASP?
Avatar billede aspbegynder Nybegynder
09. maj 2002 - 16:59 #26
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 :-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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