Avatar billede vb-mo Nybegynder
25. juni 2003 - 08:44 Der er 28 kommentarer og
2 løsninger

POST istedet for GET

Hejsa

Jeg sidder og skal sende nogle data fra en webserver til en anden og vil der for sende det med POST istedet for med GET.

Jeg har en formular hvor folk indtaster oplysninger der bliver gemt i database når dette er sket vil jeg ikke lave en "Response.Redirect" for at sende til den angivne url men istedet sende det som en POST er der nogen der har en ide eller et forslag til hvorledes jeg klare den ?

/vb-mo
Avatar billede mm12010 Nybegynder
25. juni 2003 - 08:47 #1
evt. ved at lægge værdierne i nogle "hidden" formfelter som du så submitter til den pågældende url
Avatar billede hyperactive Nybegynder
25. juni 2003 - 08:47 #2
Du kan ikke bruge POST i forbindelse med en Redirect... Du kan evt. gemme indtastningerne i Session variabler og hente dem derfra, hvis du ikke ønsker at de vises i adresselinien.
Avatar billede dk_akj Nybegynder
25. juni 2003 - 08:54 #3
Helt klart mm12010's løsning.

//akj
Avatar billede vb-mo Nybegynder
25. juni 2003 - 08:55 #4
hyperactive.dk >> Jeg skal heller ikke bruge redirect jeg skal blot sende dem som POST istedet for redirect for at undgå at sende hen over headeren. Kan du give et eksempel på at gøre det med session Variabler ?
Avatar billede vb-mo Nybegynder
25. juni 2003 - 08:57 #5
mm12010 >> Hvordan vil du automatisk sende dem afsted i samme øjeblik de gemmes i database uden at skulle trykke på endnu en submitknap ?
Avatar billede dk_akj Nybegynder
25. juni 2003 - 09:00 #6
' gem data i db
' conn.execute(.........)

response.write "<form action=xyz.com>"
response.write "<input name=data1 type=hidden value="&data1&" >"
response.write "<input name=data2 type=hidden value="&data2&" >"



response.write </form>

response.write "<script language=javascript>" & vbcrlf
response.write "document.form.submit();"& vbcrlf
response.write "</script>"& vbcrlf

//akj
Avatar billede nielle Nybegynder
25. juni 2003 - 09:08 #7
Som jeg læser vb-mo's spørgsmål så vil han gerne have en funktionalitet som ved Redirect, men uden at skulle inkludere data som en del af URL’et. Derfor er det vel ikke tilfredsstillende, hvis brugerne skal tykke på en submit-knap.

Men, mon ikke man kan gør det via onLoad eller noget i den stil? Jeg har ikke prøvet det selv, men ville gætte på at det kunne se nogenlunde således ud:

...
<body onLoad="FormRedirect.submit()">
<form action="http://www.denandenserver.dk/do_whatever.asp" method="post" id="FormRedirect" name="FormRedirect">
<input type="hidden" name="Data1" value="xxx">
<input type="hidden" name="Data2" value="yyy">
<input type="hidden" name="Data3" value="zzz">
</form>
...
Avatar billede vb-mo Nybegynder
25. juni 2003 - 09:16 #8
Ok jeg er lige igang med at teste jeres foreslag er tilbage om 10 min :o)
Avatar billede vb-mo Nybegynder
25. juni 2003 - 09:39 #9
Ok her er mit resultat :

Form.htm
<html>

<head>
</head>

<body>

<form method="POST" action="Gem.asp">
  user<br>
  <input type="text" name="user" size="20"><br>
  pass<br>
  <input type="text" name="pass" size="20"><br>
  email<br>
  <input type="text" name="email" size="20"><br>
  <br>
  <br>
  <input type="submit" value="Send" name="Send">
</form>

</body>

</html>

Gem.asp
<%
'---Eksempel 1 med document.form.submit
response.write "<form action=modtag.asp?x=1>"
response.write "<input type=hidden name=User value="&Request.form("User")&">"
response.write "<input type=hidden name=Pass value="&Request.form("Pass")&">"
Response.Write "<input type=hidden name=Email value="&Request.form("Email")&">"
response.write "</form>"
response.write "<script language=javascript>" & vbcrlf
response.write "document.form.submit();"& vbcrlf
response.write "</script>"& vbcrlf

'---Eksempel 2 med body onload
Response.Write "<body onLoad=FormRedirect.submit()>"
Response.Write "<form action=modtag.asp?x=2 method=post id=FormRedirect name=FormRedirect>"
Response.Write "<input type=hidden name=User value="&Request.form("User")&">"
Response.Write "<input type=hidden name=Pass value="&Request.form("Pass")&">"
Response.Write "<input type=hidden name=Email value="&Request.form("Email")&">"
response.write "</form>"
%>

Modtag.asp
<html>

<head>
</head>

<body>
<%
If Request.QueryString("x") = "1" Then
    Response.Write "Eksempel 1 med document.form.submit <br><br>"
    Response.Write "User : "&Request.Form("user")&"<br>"
    Response.Write "Pass : "&Request.Form("pass")&"<br>"
    Response.Write "Email : "&Request.Form("email")&"<br><br>"
End If

If Request.QueryString("x") = "2" Then
    Response.Write "Eksempel 2 med body onload <br><br>"
    Response.Write "User : "&Request.Form("user")&"<br>"
    Response.Write "Pass : "&Request.Form("pass")&"<br>"
    Response.Write "Email : "&Request.Form("email")&"<br>"
End If
%>
</body>

</html>

Som kun giver dette resultat :

Eksempel 2 med body onload

User : vb-mo
Pass : 121212
Email : min@email.dk

Jeg ved ikke om jeg har en fejl på Eksempel 1 men som i kan se giver det ikke noget resultat !?!
Avatar billede dk_akj Nybegynder
25. juni 2003 - 09:48 #10
response.write "<form name=form1 id=form1 action=modtag.asp?x=1>"
response.write "<input type=hidden name=User value=""&Request.form("User")&"">"
response.write "<input type=hidden name=Pass value=""&Request.form("Pass")&"">"
Response.Write "<input type=hidden name=Email value=""&Request.form("Email")&"">"
response.write "</form>"
response.write "<script language=javascript>" & vbcrlf
response.write "document.form1.submit();"& vbcrlf
response.write "</script>"& vbcrlf


//akj
Avatar billede vb-mo Nybegynder
25. juni 2003 - 10:00 #11
Og hvis jeg bruger den så udskriver den det hele i adresse linien istedet for på selve siden !?! http://......modtag.asp?User=vb-mo&Pass=121212&Email=min@email.dk
Avatar billede mm12010 Nybegynder
25. juni 2003 - 10:03 #12
har du husket method="post"
Avatar billede nielle Nybegynder
25. juni 2003 - 10:17 #13
I eksempel 1 har du glemt en method="POST".

Desuden skal den vist hedde: document.form(0).submit
Avatar billede dk_akj Nybegynder
25. juni 2003 - 10:19 #14
Ja, for lige at gentage mm12010  (og nielle)

response.write "<form name=form1 id=form1 action=modtag.asp?x=1 method=POST>"
response.write "<input type=hidden name=User value=""&Request.form("User")&"">"
response.write "<input type=hidden name=Pass value=""&Request.form("Pass")&"">"
Response.Write "<input type=hidden name=Email value=""&Request.form("Email")&"">"
response.write "</form>"
response.write "<script language=javascript>" & vbcrlf
response.write "document.form1.submit();"& vbcrlf
response.write "</script>"& vbcrlf

//akj
Avatar billede nielle Nybegynder
25. juni 2003 - 10:19 #15
Forresten bør du lave en gyldig hetml side - komplet med <html>, </html>, <head>, </head>, <body> og </body>

Det var det mine "..." signalerede :^)
Avatar billede nielle Nybegynder
25. juni 2003 - 10:25 #16
...og dine Response.Write linjer skal se sådan her ud:

Response.Write "<input type=hidden name=User value=""" & Request.form("User")& """>"

Altså en dobelt-" der hvor du skal have indsat et "-tegn i din side.
Avatar billede nielle Nybegynder
25. juni 2003 - 10:26 #17
Alt andet burde give en fejlkode.
Avatar billede vb-mo Nybegynder
25. juni 2003 - 11:25 #18
Ja hvis jeg bruger denne måde :

Response.Write "<input type=hidden name=User value=""" & Request.form("User")& """>"

Får jeg stadig udskrevet det hele i adresselinien dette er med dk_akj's eksempel den gør det. Med nielle's eksempel bruger jeg denne :

Response.Write "<input type=hidden name=User value=" & Request.form("User")& ">"

Og der kommer der ingen fejl koder ingen udskrift i adresselinien blot det resultat jeg var ude efter :o) Så jeg kan ikke helt følge jer !?! Der til kommer at jeg altid bruger/har brugt ' istedet " altså vil det se således ud :

Response.Write "<input type='hidden' name='User' value='" & Request.form("User")& "'>"

Og det har heller aldrig givet mig fejl koder :o) Men man kan jo altid lære noget nyt ikke :o)
Avatar billede vb-mo Nybegynder
25. juni 2003 - 11:28 #19
nielle >> Hvorfor er det du mener at jeg skal bruge <html>, </html>, <head>, </head>.... osv.
Avatar billede nielle Nybegynder
25. juni 2003 - 11:35 #20
Fordi - hvis du ikke overholder html-standarden så er der ikke nogen garanti for at det vil fungere i alle browsere.
Avatar billede dk_akj Nybegynder
25. juni 2003 - 11:37 #21
Du får det hele i adresselinien da jeg i mit første eksemple glemte method=post på form tag'et.

//akj
Avatar billede nielle Nybegynder
25. juni 2003 - 11:39 #22
Mht. din Response.Write:

Standarden siger at der skal "-tegn rundt om value-felterne:

<input type=hidden name=User value="vb-mo">

Din Request.Write (11:25:56) laver imidlertid et output som dette:

<input type=hidden name=User value=vb-mo>

Du skal skrive "" de steder hvor du skal have indsat et "-tegn.
Avatar billede nielle Nybegynder
25. juni 2003 - 11:47 #23
Standarden siger " rundt om value-værdier - ikke '-tegn.
Avatar billede vb-mo Nybegynder
25. juni 2003 - 11:50 #24
akj >> ok den havde jeg lige over set det virker fint når POST lige er med i formularen :o)

nielle >> Ok den er jeg med på men i dette tilfælde er det ikke så vigtigt da der er tale om at der sendes fra en webserver til en anden men inden for "hjemmets 4 vægge" :o)

I får tak for hjælpen og i får også lov at dele point da begge jeres eksempler virker :o)
Avatar billede dk_akj Nybegynder
25. juni 2003 - 11:52 #25
Selvom du bruger det "inden for "hjemmets 4 vægge" :o)" syntes jeg lige du skal lægge

<html>
<head
</head>
<body>
<%
' asp kode her
%>
</body>
</html>
Avatar billede nielle Nybegynder
25. juni 2003 - 11:53 #26
Det sendes nu ikke direkte fra webserver til webserver - det går via browseren. Det er browseren som bestemmer om det går godt ellerr ej.
Avatar billede vb-mo Nybegynder
25. juni 2003 - 11:55 #27
Ok det vil jeg gøre så er vi da sikre på at det hele virker perfekt :o)
Avatar billede nielle Nybegynder
25. juni 2003 - 11:55 #28
... og så er det lige så meget et råd om hvad du bør gøre hvis du udvikler noget "ud af huset" :^)
Avatar billede vb-mo Nybegynder
25. juni 2003 - 12:55 #29
Det er altid en fornøjelse at diskutere nogle ting med folk der ser anderledes på tingene end en selv :o)
Avatar billede dk_akj Nybegynder
25. juni 2003 - 13:06 #30
vb-mo >> Et eksemplel kunne være javascript, IE er ligeglad med om man husker ; efter hver komando, Kører man samme script i netscape virker det ikke.

Det er det samme med De grundlæggende html tags, er de der ikke virker det måske på IE men ikke på mozilla

//akj
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