Avatar billede ger2001 Novice
13. april 2005 - 09:48 Der er 14 kommentarer og
1 løsning

post og get i samme formular

Kan man bruge både get og post i samme formular. hvis ja hvordan?

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("/database/db1.mdb")
mode = Request.QueryString("mode")
scriptname = Request.ServerVariables("SCRIPT_NAME")
%>
<HTML>
<BODY BGCOLOR="white">

<H1>aspSmartUpload : Sample 2</H1>
<HR>

<form name="myForm" method="get" action="/upload2.asp" ENCTYPE="multipart/form-data">
  <select name="vareNR" style="width:343px">
    <%
    set rs = conn.execute("select * from fejl order by id")
    do while not rs.eof
      response.write "<option value='"& rs("id") &"'>"& rs("id")
      rs.MoveNext
    loop
    %>
  </select>
  </p>

<FORM METHOD="post" ACTION="/upload2.asp" ENCTYPE="multipart/form-data">
  <INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
 


<INPUT TYPE="SUBMIT" VALUE="Upload">
</FORM>


</BODY>
</HTML>
Avatar billede erikjacobsen Ekspert
13. april 2005 - 10:03 #1
Du kan ikke have en <form> i en <form>.

Hvorfor skal du bruge GET. Mit bud er at du alene skal bruge POST fordi du uploader filer.
Avatar billede skyggen2000 Nybegynder
13. april 2005 - 10:07 #2
Det kan man ikke, dette er kopieret fra MSDN:

Possible Values

String that specifies or receives one of the following values.
get Append the arguments to the action URL and open it as if it were an anchor.
post Send the data through an HTTP post transaction.


The property is read/write. The property has no default value.

Remarks

When using the post method, there is no theoretical limit to the amount of data that can be sent to the HTTP server. The amount of data may be constrained by the physical limits of the client computer.

When using the get method to send data to an HTTP server, the amount of data that can be sent is limited by the maximum length of a URL. In this case the URL cannot be longer than 2048 bytes.
Avatar billede ger2001 Novice
13. april 2005 - 10:09 #3
har prøvet med post, kan godt uploade billede samt gemme filnavn, men kan ikke gemme vareNR. poster lige begge sider.
upload.asp
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("/database/db1.mdb")
mode = Request.QueryString("mode")
scriptname = Request.ServerVariables("SCRIPT_NAME")
%>
<HTML>
<BODY BGCOLOR="white">
<H1>aspSmartUpload : Sample 2</H1>
<HR>
<FORM METHOD="POST" ACTION="/upload2.asp" ENCTYPE="multipart/form-data">
  <INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
     
<form name="myForm" method="post" action="/upload2.asp" ENCTYPE="multipart/form-data">
  <select name="vareNR" style="width:343px">
    <%
    set rs = conn.execute("select * from fejl order by id")
    do while not rs.eof
      response.write "<option value='"& rs("id") &"'>"& rs("id")
      rs.MoveNext
    loop
    %>
  </select>
  </p>

<INPUT TYPE="SUBMIT" VALUE="Upload">
</FORM>
</BODY>
</HTML>

upload2.asp
<%
  Dim mySmartUpload,file

  Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("/database/db1.mdb")
mode = Request.QueryString("mode")
scriptname = Request.ServerVariables("SCRIPT_NAME")
       
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  mySmartUpload.Upload

  For each file In mySmartUpload.Files
      If not file.IsMissing Then
     
        file.SaveAs("c:\1\" & file.FileName)
        Conn.execute("Insert Into filer (url) Values ('C:\1\" & file.FileName &"')")

      End If

  Next

%>
Avatar billede erikjacobsen Ekspert
13. april 2005 - 10:15 #4
Du kan ikke aflæse dit varenr med request.form("varenr") - har du prøvet at læse dokumentationen til aspsmartupload?  Du skal i det tilfældie bruge

  mySmartUpload.form("varenr")

Har du stadig behov for linien med

  mode = Request.QueryString("mode")

skal du tilføje værdien sådan her (ca):
<FORM METHOD="POST" ACTION="/upload2.asp?mode=etellerandet" ENCTYPE="multipart/form-data">
Avatar billede ger2001 Novice
13. april 2005 - 10:30 #5
hvordan skriver jeg denne linie?
        Conn.execute("Insert Into filer (url,idnummer) Values ('C:\1\" & file.FileName &"',mySmartUpload.form("varenr")"))
Avatar billede erikjacobsen Ekspert
13. april 2005 - 10:39 #6
ved at sammensætte med & som du allerede har gjort med filnavnet:

  Conn.execute("Insert Into filer (url,idnummer) Values ('C:\1\" & file.FileName & "'," & mySmartUpload.form("varenr") & ")" )

Du er så klar over at du ingen beskyttelse har mod sql-injection, og aldrig må bruge koden som den står her til noget i virkelighedens verden. Den kommer nok til at virke,
men indtil du har styr på sikkerhedsaspekter må du love aldrig at bruge den til noget. Ok?
Avatar billede ger2001 Novice
13. april 2005 - 10:48 #7
den bruges kun på et internt netværk så det giver vel ingen problemer.
Avatar billede ger2001 Novice
13. april 2005 - 10:54 #8
skal kun bruges på internt netværk så det giver vel ingen problemer.
Det virker ihvertfald
Smid lige et svar erik
Avatar billede erikjacobsen Ekspert
13. april 2005 - 10:59 #9
Det er virkelig at stikke hovedet i busken, og lade som om sikkerhedsproblemer ikke eksisterer. Jeg må igen kraftigt råde dig fra at tage denne kode i anvendelse, og anbefale dig at vente med at lave denne slags systemer, indtil du har bare en fornemmelse for krævet sikkerhed i den slag systemer.

Men jeg samler ikke på point, tak.
Avatar billede ger2001 Novice
13. april 2005 - 11:12 #10
Hvis det kun bruges internt og systemet er beskyttet af en firewall er der så en reel risiko?
Avatar billede erikjacobsen Ekspert
13. april 2005 - 11:21 #11
Hvis du er sat til at lave it-systemer, hvorfor kan du så ikke gøre det ordentligt?

Du må selv om hvad du gør, du har jo hørt min mening.
Avatar billede ger2001 Novice
13. april 2005 - 11:26 #12
Jeg laver ikke it-systemet. Jeg har bare en computer der står og køre lidt asp på et lukket netværk hvor vi kun er ca. 15 brugere. Jeg er ikke nogen ekspert mht netværk eller asp eller server for den sags skyld, så hvis der er en reel trussel udefra kan du så ikke lige pointere for mig hvordan jeg løser det.
Avatar billede ger2001 Novice
13. april 2005 - 11:33 #13
Erik: Jeg respektere at du ikke vil have pointene så jeg tager dem tilbage igen!!
Avatar billede erikjacobsen Ekspert
13. april 2005 - 11:37 #14
eksperten.dk er nok ikke stedet at løse sikkerhedsproblemer ;)

Det er muligt du i den konkrete situation, lige her og nu, ikke har problemer, men
alt kan ændre sig, og du efterlader et hul. Det umiddelbare problem er nævnt tidligere:
"sql-injection" - og læs mere om det via google.
Avatar billede ger2001 Novice
13. april 2005 - 11:39 #15
ok takker for din hjælp
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