Avatar billede musicchart.dk Nybegynder
15. oktober 2002 - 23:28 Der er 18 kommentarer og
1 løsning

Hvad er "Enctype"?

Hey

Er der nogen der ved hvad Enctype i en form er for noget?

Jeg har tilføjet det til min form:

enctype='multipart/form-data'

...men nu vil den ikke sende data videre?

ps. jeg har ændret det fordi jeg også bruger formen til at uploade.


//Bjarke
Avatar billede hossein Nybegynder
15. oktober 2002 - 23:33 #1
Avatar billede musicchart.dk Nybegynder
15. oktober 2002 - 23:36 #2
hossein >> hmmm, jeg forstår ikke helt hvad forfatteren mener?
Avatar billede ursusquietus Nybegynder
16. oktober 2002 - 00:21 #3
enctype='multipart/form-data' betyder at du sender ikke sender normale form data afsted, men også noget binært, som f.eks. en fil. Du kan ikke tilgå dine form variable på normal måde i resultatsiden når du benytter denne enctype. Det er det som er dit problem ikke? Bruger du en upload komponent til at gemme filen med på resultatsiden? Hvis ja, så indeholder den nogle metoder til at tilgå dine form variable. Hvis ikke, så sig mig lige hvordan du gemmer filen som du uploader.
Avatar billede musicchart.dk Nybegynder
16. oktober 2002 - 15:31 #4
ursusquietus >> jo, på resultat siden bliver der gemt i en database + der bliver uploadet en fil (med ASPSmartUpload).
Men hvordan får jeg så sendt dataen fra min form videre, eller hvordan henter jeg dataen?
Avatar billede ursusquietus Nybegynder
16. oktober 2002 - 23:07 #5
Du sender dem afsted på normal vis, og modtager dem igennem aspsmartupload objektet på resultatsiden.

Følgende er tager fra ASPsmartupload's hjemmeside (www.aspsmart.com):

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload

'  FILES Collection
'  ****************
  Response.Write("<BR><STRONG>Files Collection</STRONG><BR>")

'  Informations about files
'  ************************
  Response.Write("Number of files =" & mySmartUpload.Files.count &"<BR>")
  Response.Write("Total bytes of files =" & mySmartUpload.Files.TotalBytes &"<BR>")

'  Select each file
'  ****************
  For each file In mySmartUpload.Files
      Response.Write(file.FileName & " (" & file.Size & "bytes)<BR>")
  Next

'  FORM Collection
'  ***************
  Response.Write("<BR><STRONG>Form Collection</STRONG><BR>")

'  Select each item
'  ****************
  For each item In mySmartUpload.Form
  '  Select each value of the current item
  '  *************************************
      For each value In mySmartUpload.Form(item)
        Response.Write(item & " = " & value & "<BR>")
      Next
  Next
Avatar billede musicchart.dk Nybegynder
19. oktober 2002 - 17:26 #6
jo, men jeg forstår ikke helt hvordan jeg skal bruge det, jeg har fx en side der ser sådan ud:

      ----------
navn:  |        |  <--form
      ----------

      ----------
alder: |        |  <--form
      ----------


        ----------
billede: |        |  |gennemse| <-- upload form
        ----------

|send|

--------------------------------------
så når man trykker send, bliver det hele sendt til resulatat siden, hvor "navn" og "alder" bliver tilføjet i en database, og "billede" bliver uploadet til serveren.

Men når jeg så bruger enctype='multipart/form-data' - så kan jeg ikke bruge den gamle måde at hente data fra en form:
request.form("navn")
... så hvordan skal jeg så hente fra en form?


//Bjarke
Avatar billede ursusquietus Nybegynder
19. oktober 2002 - 17:34 #7
Som jeg skrev:

For each item In mySmartUpload.Form
  For each value In mySmartUpload.Form(item)
        Response.Write(item & " = " & value & "<BR>")
  Next
Next

Det er på den måde du henter data ud af formen. Jeg kan ikke forklare de tydeligere.
Avatar billede musicchart.dk Nybegynder
19. oktober 2002 - 17:44 #8
jo, men når nu min nuværende kode til at indsætte i databasen ser sådan ud:

navn = request.form("navn")
alder = request.form("alder")


strSQL = "Insert into bruger("

strSQL = strSQL & "navn, "
strSQL = strSQL & "alder) "

strSQL = strSQL & " values( "

strSQL = strSQL & "'" & navn & "',"
strSQL = strSQL & "'" & alder & "')"

Conn.Execute(strSQL)


...hvordan kan jeg gøre det samme, med det kode du har givet mig?
Avatar billede ursusquietus Nybegynder
19. oktober 2002 - 17:55 #9
navn = mySmartUpload.Form("navn")

muligvis:

navn = mySmartUpload.Form("navn").value
Avatar billede musicchart.dk Nybegynder
19. oktober 2002 - 18:00 #10
aha... tester lige...
Avatar billede musicchart.dk Nybegynder
19. oktober 2002 - 18:13 #11
...hmmm, næ det virker ikke :(
Avatar billede musicchart.dk Nybegynder
19. oktober 2002 - 18:29 #12
ok, tror jeg løser problemet ved at sende mine forms til resultat siden, gennem quesrystring, men ved du om der er en begrænsning på hvor meget dere må stå i addresselinien?... eller anden negativt ved at sende forms gennem addr.linien?
Avatar billede ursusquietus Nybegynder
19. oktober 2002 - 18:35 #13
Vis mig din kode
Avatar billede musicchart.dk Nybegynder
19. oktober 2002 - 18:43 #14
her er resultatsiden: (koden er lidt lang)

<%
txt = Request.QueryString("ieedit_hidden")
    txt = Replace((txt),"'","''")
artist = Request.QueryString("artist")
    artist = Replace((artist),"'","''")
   
album = Request.QueryString("album")
    album = Replace((album),"'","''")
udgivelsesaar = Request.QueryString("udgivelsesaar")
    udgivelsesaar = Replace((udgivelsesaar),"'","''")
indhold1 = Request.QueryString("indhold1")
indhold2 = Request.QueryString("indhold2")
indhold3 = Request.QueryString("indhold3")
indhold4 = Request.QueryString("indhold4")
indhold5 = Request.QueryString("indhold5")
indhold6 = Request.QueryString("indhold6")
indhold7 = Request.QueryString("indhold7")
indhold8 = Request.QueryString("indhold8")
indhold9 = Request.QueryString("indhold9")
indhold10 = Request.QueryString("indhold10")
indhold11 = Request.QueryString("indhold11")
indhold12 = Request.QueryString("indhold12")
indhold13 = Request.QueryString("indhold13")
indhold14 = Request.QueryString("indhold14")
indhold15 = Request.QueryString("indhold15")
indhold16 = Request.QueryString("indhold16")
indhold17 = Request.QueryString("indhold17")
indhold18 = Request.QueryString("indhold18")
indhold19 = Request.QueryString("indhold19")
indhold20 = Request.QueryString("indhold20")
rating = Request.QueryString("rating")

errorTxt = ""
errorArtist = ""
errorAlbum = ""
errorIndhold = ""
if txt = "" then
    errorTxt = errorTxt & "tekst"
end if
if artist = "" then
    errorArtist = errorArtist & "artist"
end if
if album = "" then
    errorAlbum = errorAlbum & "album"
end if
if indhold1 = "" then
    errorIndhold = errorIndhold & "indhold"
end if
if udgivelsesaar = "" then
    errorudgivelsesaar = errorudgivelsesaar & "udgivelsesaar"
end if
if rating = "na" then
    errorRating = errorRating & "rating"
end if

if errorTxt <> "" Or errorArtist <> "" Or errorAlbum <> "" Or errorIndhold <> "" Or errorUdgivelsesaar <> "" then
    response.redirect "index.asp?side=11&coadmin=7&errorArtist=" & errorArtist & "&errorAlbum=" & errorAlbum & "&errorRating=" & errorRating & "&errorUdgivelsesaar=" & errorudgivelsesaar & "&errorIndhold=" & errorIndhold & "&txt=" & txt & "&artist=" & artist & "&udgivelsesaar=" & udgivelsesaar & "&album=" & album & "&indhold1=" & indhold1 & "&indhold2=" & indhold2 & "&indhold3=" & indhold3 & "&indhold4=" & indhold4 & "&indhold5=" & indhold5 & "&indhold6=" & indhold6 & "&indhold7=" & indhold7 & "&indhold8=" & indhold8 & "&indhold9=" & indhold9 & "&indhold10=" & indhold10 & "&indhold11=" & indhold11 & "&indhold12=" & indhold12 & "&indhold13=" & indhold13 & "&indhold14=" & indhold14 & "&indhold15=" & indhold15 & "&indhold16=" & indhold16 & "&indhold17=" & indhold17 & "&indhold18=" & indhold18 & "&indhold19=" & indhold19 & "&indhold20=" & indhold20
end if

indhold = ""
for i = 1 to 20
  if Request.QueryString("indhold" & i) <> "" then
    indhold = indhold & Request.QueryString("indhold" & i) & ","
  end if
next

indhold = replace((indhold),"'","''")

len(indhold)
indhold = left(indhold, len(indhold) -1)

%>
<!--#include file="includes/conn.inc" -->
<%

bruger = session("bruger")
dato = FormatDateTime(Now, vbShortDate)

strSQL = "SELECT * FROM members Where id = " & bruger
Set rs = Conn.Execute(strSQL)

if session("status") = "CoAdmin" or session("Admin") = "Admin" then
    godkend = "ja"
else
    godkend = "nej"
end if

strSQL = "Insert into artikler("

strSQL = strSQL & "brugerid, "
strSQL = strSQL & "dato, "
strSQL = strSQL & "tekst, "
strSQL = strSQL & "[type], "
strSQL = strSQL & "rating, "
strSQL = strSQL & "artist, "
strSQL = strSQL & "album, "
strSQL = strSQL & "godkendt, "
strSQL = strSQL & "udgivelsesaar, "
strSQL = strSQL & "contents) "

strSQL = strSQL & " values( "

strSQL = strSQL & "'" & bruger & "',"
strSQL = strSQL & "'" & dato & "',"
strSQL = strSQL & "'" & txt & "',"
strSQL = strSQL & "'" & "1" & "',"
strSQL = strSQL & "'" & rating & "',"
strSQL = strSQL & "'" & artist & "',"
strSQL = strSQL & "'" & album & "',"
strSQL = strSQL & "'" & godkend & "',"
strSQL = strSQL & "'" & udgivelsesaar & "',"
strSQL = strSQL & "'" & indhold & "')"

'Conn.Execute(strSQL)



'///////////UPLOAD

'On Error Resume Next
MyText = mySmartUpload.form("upload")
Dim mySmartUpload
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.MaxFileSize = 100000
mySmartUpload.DeniedFilesList = "exe,bat,asp,scr"
mySmartUpload.Upload
strFileName = mySmartUpload.Files.Item(1).FileName
mySmartUpload.Files.Item(1).SaveAs "../images/billeder/" & strFileName

response.write strSQL
%>
<!--#include file="includes/conn_close.inc" -->
Avatar billede ursusquietus Nybegynder
19. oktober 2002 - 18:45 #15
Der er en begrænsning, men den er ret høj. Ulempen er at man kan se i URL'en hvad du sender. Men det andet skal altså virke. Vis mig din kode og hvad fejl det giver.
Avatar billede ursusquietus Nybegynder
19. oktober 2002 - 18:52 #16
Nu mente jeg jo koden som du sagde ikke virkede. Virker denne side?
Avatar billede musicchart.dk Nybegynder
19. oktober 2002 - 19:01 #17
Min form ser sådan ud:

<FORM method="post" ACTION="add_review_cd.asp" enctype="multipart/form-data" name="frm">

***en masse text fields***

</form>

Her er resulatatsiden:

<%
Dim mySmartUpload
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

txt = mySmartUpload.Form("ieedit_hidden")
    txt = Replace((txt),"'","''")
artist = mySmartUpload.Form("artist")
    artist = Replace((artist),"'","''")
   
album = mySmartUpload.Form("album")
    album = Replace((album),"'","''")
udgivelsesaar = mySmartUpload.Form("udgivelsesaar")
    udgivelsesaar = Replace((udgivelsesaar),"'","''")
indhold1 = mySmartUpload.Form("indhold1")
indhold2 = mySmartUpload.Form("indhold2")
indhold3 = mySmartUpload.Form("indhold3")
indhold4 = mySmartUpload.Form("indhold4")
indhold5 = mySmartUpload.Form("indhold5")
indhold6 = mySmartUpload.Form("indhold6")
indhold7 = mySmartUpload.Form("indhold7")
indhold8 = mySmartUpload.Form("indhold8")
indhold9 = mySmartUpload.Form("indhold9")
indhold10 = mySmartUpload.Form("indhold10")
indhold11 = mySmartUpload.Form("indhold11")
indhold12 = mySmartUpload.Form("indhold12")
indhold13 = mySmartUpload.Form("indhold13")
indhold14 = mySmartUpload.Form("indhold14")
indhold15 = mySmartUpload.Form("indhold15")
indhold16 = mySmartUpload.Form("indhold16")
indhold17 = mySmartUpload.Form("indhold17")
indhold18 = mySmartUpload.Form("indhold18")
indhold19 = mySmartUpload.Form("indhold19")
indhold20 = mySmartUpload.Form("indhold20")
rating = mySmartUpload.Form("rating")

errorTxt = ""
errorArtist = ""
errorAlbum = ""
errorIndhold = ""
if txt = "" then
    errorTxt = errorTxt & "tekst"
end if
if artist = "" then
    errorArtist = errorArtist & "artist"
end if
if album = "" then
    errorAlbum = errorAlbum & "album"
end if
if indhold1 = "" then
    errorIndhold = errorIndhold & "indhold"
end if
if udgivelsesaar = "" then
    errorudgivelsesaar = errorudgivelsesaar & "udgivelsesaar"
end if
if rating = "na" then
    errorRating = errorRating & "rating"
end if

if errorTxt <> "" Or errorArtist <> "" Or errorAlbum <> "" Or errorIndhold <> "" Or errorUdgivelsesaar <> "" then
    response.redirect "index.asp?side=11&coadmin=7&errorArtist=" & errorArtist & "&errorAlbum=" & errorAlbum & "&errorRating=" & errorRating & "&errorUdgivelsesaar=" & errorudgivelsesaar & "&errorIndhold=" & errorIndhold & "&txt=" & txt & "&artist=" & artist & "&udgivelsesaar=" & udgivelsesaar & "&album=" & album & "&indhold1=" & indhold1 & "&indhold2=" & indhold2 & "&indhold3=" & indhold3 & "&indhold4=" & indhold4 & "&indhold5=" & indhold5 & "&indhold6=" & indhold6 & "&indhold7=" & indhold7 & "&indhold8=" & indhold8 & "&indhold9=" & indhold9 & "&indhold10=" & indhold10 & "&indhold11=" & indhold11 & "&indhold12=" & indhold12 & "&indhold13=" & indhold13 & "&indhold14=" & indhold14 & "&indhold15=" & indhold15 & "&indhold16=" & indhold16 & "&indhold17=" & indhold17 & "&indhold18=" & indhold18 & "&indhold19=" & indhold19 & "&indhold20=" & indhold20
end if

indhold = ""
for i = 1 to 20
  if mySmartUpload.Form("indhold" & i) <> "" then
    indhold = indhold & mySmartUpload.Form("indhold" & i) & ","
  end if
next

indhold = replace((indhold),"'","''")

len(indhold)
indhold = left(indhold, len(indhold) -1)

%>
<!--#include file="includes/conn.inc" -->
<%

bruger = session("bruger")
dato = FormatDateTime(Now, vbShortDate)

strSQL = "SELECT * FROM members Where id = " & bruger
Set rs = Conn.Execute(strSQL)

if session("status") = "CoAdmin" or session("Admin") = "Admin" then
    godkend = "ja"
else
    godkend = "nej"
end if

strSQL = "Insert into artikler("

strSQL = strSQL & "brugerid, "
strSQL = strSQL & "dato, "
strSQL = strSQL & "tekst, "
strSQL = strSQL & "[type], "
strSQL = strSQL & "rating, "
strSQL = strSQL & "artist, "
strSQL = strSQL & "album, "
strSQL = strSQL & "godkendt, "
strSQL = strSQL & "udgivelsesaar, "
strSQL = strSQL & "contents) "

strSQL = strSQL & " values( "

strSQL = strSQL & "'" & bruger & "',"
strSQL = strSQL & "'" & dato & "',"
strSQL = strSQL & "'" & txt & "',"
strSQL = strSQL & "'" & "1" & "',"
strSQL = strSQL & "'" & rating & "',"
strSQL = strSQL & "'" & artist & "',"
strSQL = strSQL & "'" & album & "',"
strSQL = strSQL & "'" & godkend & "',"
strSQL = strSQL & "'" & udgivelsesaar & "',"
strSQL = strSQL & "'" & indhold & "')"

'Conn.Execute(strSQL)



'///////////UPLOAD

'On Error Resume Next
MyText = mySmartUpload.form("upload")
mySmartUpload.MaxFileSize = 100000
mySmartUpload.DeniedFilesList = "exe,bat,asp,scr"
mySmartUpload.Upload
strFileName = mySmartUpload.Files.Item(1).FileName
mySmartUpload.Files.Item(1).SaveAs "../images/billeder/" & strFileName

response.write strSQL
%>
<!--#include file="includes/conn_close.inc" -->



....fejlen er at hvis jeg udskriver mine forms på resultatsiden, så bliver der ikke printet noget, altså den kan ikke hente data fra mine forms.
Avatar billede ursusquietus Nybegynder
19. oktober 2002 - 20:52 #18
Jeg fandt dette eksempel i en nyhedsgruppe. Du skal blot erstatye hans variabel navne med dine egne. Så istedet for "parent" og "title" kan du bruge "navn" eller hvad du har lyst til. Håber det virker.


'  Object creation
'  ***************
Set fileUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
fileUpload.Upload
ne=fileUpload.form.count  ' how many form items in the string

'*************************************

for n=1 to ne
  formEl = fileUpload.form.item(n).name
  select case (formEl)
  case "parent"
    parent = fileUpload.Form.item(n).values

  case "title"
    title = fileUpload.Form.item(n).values

  case "zone"
    zone = fileUpload.Form.item(n).values

  case "expiry"
    expiry = fileUpload.Form.item(n).values

  case "linkname"
    linkname = fileUpload.Form.item(n).values

  case "ivb"
    ivb_f = fileUpload.Form.item(n).values
    if ivb_f = "TRUE" then ivb = TRUE end if
  case "focus"
    focus = fileUpload.Form.item(n).values

  end select
next
Avatar billede musicchart.dk Nybegynder
19. oktober 2002 - 21:16 #19
aha!.. har fundet ud af det... det er fordi der skal være parantes () rundt om og der skal være & før value fx:

response.write (mySmartUpload.Form("navn") & value)


...Takker for hjælpen!!


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