Avatar billede hehlers Nybegynder
11. maj 2007 - 08:22 Der er 13 kommentarer og
1 løsning

Tjek på formfelter

Hejsa

Jeg har en formular, som opdaterer en db og uploader et billede. Nu skal jeg så have lavet validering på en række af felterne, men det kan jeg slet ikke få til at virke. :(

Følgende felter skal valideres:
mindstepris // skal være et tal
startpris // skal være et tal
ovs // skal være udfyldt og max 150 tegn

Her er min kode der uploader og opdaterer db:
-------------------------------------

    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL = "select * from tbl_auktion"
    rs.Open strsql, conn, 1, 3

   
    Set Upload = Server.CreateObject("Persits.Upload")
    Upload.OverwriteFiles = False
    upload.save
    for each file in Upload.Files
      if (lCase(file.ext) = ".gif" or lCase(file.ext) = ".jpg") and File.Size < 50000 then
    file.saveAs server.mappath("images/upload/") &"/"& File.FileName
    rs.AddNew
    rs("ovs") = Upload.Form("ovs")
    rs("txt") = Upload.Form("txt")
    rs("dato") = Upload.Form("dato")
    rs("mindstepris") = Upload.Form("mindstepris")
    rs("startpris") = Upload.Form("startpris")
    rs("budforoegelse") = Upload.Form("budforoegelse")
    rs("stand") = Upload.Form("stand")
    rs("bruger_id") = Upload.Form("session_id")
    rs("ip_log") = Upload.Form("ip_log")
    rs("billede") = file.FileName
    rs("dato_ned") = cDate(Upload.Form("dato")) + cLng(Upload.Form("dage"))
    rs.update
else
    response.redirect("opret_auktion.asp?menu=fodboldauktioner&etx=Billedet er for stort eller forkert filtype.")
end if
next
response.redirect("opret_auktion.asp?menu=fodboldauktioner&action=oprettet")           

end if
------------------------------------
På forhånd tak

Henrik
Avatar billede fennec Nybegynder
11. maj 2007 - 08:33 #1
Ændre:
for each file in Upload.Files
  if (lCase(file.ext) = ".gif" or lCase(file.ext) = ".jpg") and File.Size < 50000 then
    file.saveAs server.mappath("images/upload/") &"/"& File.FileName

Til:
for each file in Upload.Files
  continue = true
  if not (lCase(file.ext) = ".gif" or lCase(file.ext) = ".jpg") then continue = false
  if File.Size > 50000 then continue = false
  if not isNumeric(Upload.Form("mindstepris")&"") then continue = false
  if not isNumeric(Upload.Form("startpris")&"") then continue = false
  if len(trim(Upload.Form("startpris")&"")) = 0 or len(trim(Upload.Form("startpris")&"")) > 150 then continue = false
  if continue then
    file.saveAs server.mappath("images/upload/") &"/"& File.FileName
Avatar billede hehlers Nybegynder
11. maj 2007 - 08:44 #2
Tak fennec

Jeg skal så bare have den til at redirecte til opret_auktion.asp?etx=Alle felter skal udfyldes&ovs=" & request.form("ovs") &"&mindstepris=" & request.form("mindstepris") &" osv osv, såfremt at nogle af felterne ikke er udfyldt korrekt.

Hvis jeg i det hele taget kan benytte request.form i den sammenhæng?
Avatar billede fennec Nybegynder
11. maj 2007 - 09:15 #3
Lige et lille spørgsmål. Er det kun en fil der bliver uploaded?
Avatar billede hehlers Nybegynder
11. maj 2007 - 10:01 #4
ja... :)
Avatar billede fennec Nybegynder
11. maj 2007 - 11:48 #5
Hvad er navnet på det formelement??
<input type="file" name"????"> <-- Dette navn
Avatar billede hehlers Nybegynder
11. maj 2007 - 11:57 #6
name="file" :)

Hele formularen er her:

<form action="opret_auktion.asp?action=opret_auktion" method="post" ENCTYPE="multipart/form-data">

<% if etx <> "" then %>
<tr><td valign="top" height="20" colspan="2" class="red"><%=etx%></td></tr>
<% end if %>
<tr><td width="100" height="20" bgcolor="efefef">Overskrift:</td>
<td bgcolor="efefef"><input type="text" class="txtfield" value="<%=request.querystring("ovs")%>" name="ovs" />
* max 150 tegn </td>
</tr>
<tr><td width="100" height="20">Dage:</td>
<td><select name="dage" class="inputdrop" id="dage" width="200">
                <option value="1">1 dag</option>
                <option value="7">1 uge</option>
                <option value="14">2 uger</option>
                <option value="21">3 uger</option>
                <option value="30">1 måned</option>
              </select>
*</td>
</tr>
<tr><td width="100" height="20" bgcolor="efefef">Stand:</td>
<td bgcolor="efefef"><select name="stand" class="inputdrop" id="stand">
                <option value="1">Perfekt stand - ny / aldrig brugt</option>
                <option value="2">Næsten som ny</option>
                <option value="3">God, men brugt</option>
                <option value="4">Godt slidt</option>
                <option value="5">Meget slidt</option>
              </select>
*</td>
</tr>
<tr>
  <td width="100">Bem&aelig;rkninger:</td>
  <td><textarea name="txt" rows="10" class="txtfield"><%=request.querystring("txt")%></textarea></td>
</tr>
<tr><td width="100" height="20" bgcolor="efefef">Fragt:</td>
  <td bgcolor="efefef"> <select name="fragt" class="inputdrop" id="fragt">
                <option value="køber betaler de faktiske omkostninger" <% if request.querystring("fragt") = "køber betaler de faktiske omkostninger" then response.write "selected" end if%>>Køber betaler</option>
                <option value="sælger betaler de faktiske omkostninger">Sælger betaler</option>
                <option value="deles">Omkostningerne deles</option>
              </select>
    *</td>
</tr>
<tr>
  <td width="100" height="20">Startpris:</td>
  <td> <input type="text" class="txtfield" value="<%=request.querystring("startpris")%>" name="startpris" />
    *</td>
</tr>
<tr>
  <td width="100" height="20" bgcolor="efefef">Mindstepris:</td>
  <td bgcolor="efefef"><input type="text" class="txtfield" value="<%=request.querystring("mindstepris")%>" name="mindstepris" />
    *</td>
</tr>
<tr>
  <td width="100" height="20">Budforøgelse:</td>
  <td> <select name="budforoegelse" class="inputdrop" id="budforoegelse">
                <option value="5" <% if request.querystring("budforoegelse") = "5" then response.write("selected") end if %>>5,- kr.</option>
                <option value="10" <% if request.querystring("budforoegelse") = "10" then response.write("selected") end if %>>10,- kr.</option>
                <option value="25" <% if request.querystring("budforoegelse") = "25" then response.write("selected") end if %>>25,- kr.</option>
                <option value="50" <% if request.querystring("budforoegelse") = "50" then response.write("selected") end if %>>50,- kr.</option>
                <option value="100" <% if request.querystring("budforoegelse") = "100" then response.write("selected") end if %>>100,- kr.</option>
               
              </select>
    *</td>
</tr>
<tr>
  <td width="100" height="20" bgcolor="efefef">Køb nu:</td>
  <td bgcolor="efefef"> <input name="koeb_nu" type="checkbox" id="koeb_nu" value="ON">
    Kryds af hvis der er tale om fastpris.</td>
</tr>
<tr>
  <td width="100" height="20">Evt. Billede:</td>
  <td> <INPUT NAME="file" TYPE="file" class="txtfield">
  <INPUT NAME="session_id" TYPE="hidden" class="txtfield" value="<%=session("id")%>">
    <INPUT NAME="ip_log" TYPE="hidden" class="txtfield" value="<%=request.ServerVariables("REMOTE_ADDR")%>">
    <INPUT NAME="dato" TYPE="hidden" class="txtfield" value="<%=now()%>">
    <br />
    Bem: Billedet m&aring; max fylde 50 kb. </td>
</tr>
<tr><td colspan="2"><hr size="1" /></td></tr>
<tr><td width="100"></td><td><br /><input type="submit" class="submit" value="n&aelig;ste &gt;" /></td></tr>
</form>
Avatar billede fennec Nybegynder
11. maj 2007 - 12:36 #7
Sådan her:

Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "select * from tbl_auktion"
rs.Open strsql, conn, 1, 3
Set Upload = Server.CreateObject("Persits.Upload")
Upload.OverwriteFiles = False
upload.save

if not isNumeric(Upload.Form("mindstepris")&"") then
    response.redirect("opret_auktion.asp?menu=fodboldauktioner&etx=Mindstepris skal være tal.")
end if
if not isNumeric(Upload.Form("startpris")&"") then
    response.redirect("opret_auktion.asp?menu=fodboldauktioner&etx=Startpris skal være tal.")
end if
if len(trim(Upload.Form("ovs")&"")) = 0 or len(trim(Upload.Form("ovs")&"")) > 150 then
    response.redirect("opret_auktion.asp?menu=fodboldauktioner&etx=Ovs skal være mellem 1-150 tegn.")
end if

Set File = Upload.Files("file")
If Not File Is Nothing Then
    if (lCase(file.ext) = ".gif" or lCase(file.ext) = ".jpg") and File.Size < 50000 then
        file.saveAs server.mappath("images/upload/") &"/"& File.FileName
        rs.AddNew
        rs("ovs") = Upload.Form("ovs")
        rs("txt") = Upload.Form("txt")
        rs("dato") = Upload.Form("dato")
        rs("mindstepris") = Upload.Form("mindstepris")
        rs("startpris") = Upload.Form("startpris")
        rs("budforoegelse") = Upload.Form("budforoegelse")
        rs("stand") = Upload.Form("stand")
        rs("bruger_id") = Upload.Form("session_id")
        rs("ip_log") = Upload.Form("ip_log")
        rs("billede") = file.FileName
        rs("dato_ned") = cDate(Upload.Form("dato")) + cLng(Upload.Form("dage"))
        rs.update
    else
        response.redirect("opret_auktion.asp?menu=fodboldauktioner&etx=Billedet er for stort eller forkert filtype.")
    end if
elseif
    response.redirect("opret_auktion.asp?menu=fodboldauktioner&etx=Ingen fil uploaded.")
End If
response.redirect("opret_auktion.asp?menu=fodboldauktioner&action=oprettet")
Avatar billede fennec Nybegynder
11. maj 2007 - 12:39 #8
ups. Manglede felterne på redirect:

response.redirect("opret_auktion.asp?menu=fodboldauktioner&etx=Mindstepris skal være tal.&ovs="& server.urlEncode(Upload.Form("ovs")) &"&txt="& server.urlEncode(Upload.Form("txt")) &"&dato="& server.urlEncode(Upload.Form("txt")) ...osv...)
Avatar billede hehlers Nybegynder
14. maj 2007 - 09:01 #9
Tak fennec.

Nu har jeg lige prøvet at rette koden til:
-----------------------
if not isNumeric(Upload.Form("mindstepris")&"") then
    response.redirect("opret_auktion.asp?menu=fodboldauktioner&etx=Overskrift skal være mellem 1-150 tegn.&ovs="& server.urlEncode(Upload.Form("ovs")) &"&txt="& server.urlEncode(Upload.Form("txt")) &"&dato="& server.urlEncode(Upload.Form("dato"))&"&mindstepris="& server.urlEncode(Upload.Form("mindstepris"))&"&budforoegelse="& server.urlEncode(Upload.Form("budforoegelse"))&"&stand="& server.urlEncode(Upload.Form("stand"))&"&ip_log="& server.urlEncode(Upload.Form("ip_log"))&"&startpris="& server.urlEncode(Upload.Form("startpris"))&")")
end if
if not isNumeric(Upload.Form("startpris")&"") then
    response.redirect("opret_auktion.asp?menu=fodboldauktioner&etx=Startpris skal være et helt tal.&ovs="& server.urlEncode(Upload.Form("ovs")) &"&txt="& server.urlEncode(Upload.Form("txt")) &"&dato="& server.urlEncode(Upload.Form("dato"))&"&startpris="& server.urlEncode(Upload.Form("startpris"))&"&budforoegelse="& server.urlEncode(Upload.Form("budforoegelse"))&"&stand="& server.urlEncode(Upload.Form("stand"))&"&ip_log="& server.urlEncode(Upload.Form("ip_log"))&")")
   
end if
if len(trim(Upload.Form("ovs")&"")) = 0 or len(trim(Upload.Form("ovs")&"")) > 150 then
    'response.redirect("opret_auktion.asp?menu=fodboldauktioner&etx=Ovs skal være mellem 1-150 tegn.")
    response.redirect("opret_auktion.asp?menu=fodboldauktioner&etx=Overskrift skal være mellem 1-150 tegn.&ovs="& server.urlEncode(Upload.Form("ovs")) &"&txt="& server.urlEncode(Upload.Form("txt")) &"&dato="& server.urlEncode(Upload.Form("dato"))&"&mindstepris="& server.urlEncode(Upload.Form("mindstepris"))&"&budforoegelse="& server.urlEncode(Upload.Form("budforoegelse"))&"&stand="& server.urlEncode(Upload.Form("stand"))&"&ip_log="& server.urlEncode(Upload.Form("ip_log"))&"&startpris="& server.urlEncode(Upload.Form("startpris"))&")")
end if

Set File = Upload.Files("file")
If Not File Is Nothing Then
    if (lCase(file.ext) = ".gif" or lCase(file.ext) = ".jpg") and File.Size < 50000 then
        file.saveAs server.mappath("images/upload/") &"/"& File.FileName
        rs.AddNew
        rs("ovs") = Upload.Form("ovs")
        rs("txt") = Upload.Form("txt")
        rs("dato") = Upload.Form("dato")
        rs("mindstepris") = Upload.Form("mindstepris")
        rs("startpris") = Upload.Form("startpris")
        rs("budforoegelse") = Upload.Form("budforoegelse")
        rs("stand") = Upload.Form("stand")
        rs("bruger_id") = Upload.Form("session_id")
        rs("ip_log") = Upload.Form("ip_log")
        rs("billede") = file.FileName
        rs("dato_ned") = cDate(Upload.Form("dato")) + cLng(Upload.Form("dage"))
        rs.update
    else
        response.redirect("opret_auktion.asp?menu=fodboldauktioner&etx=Billedet er for stort eller af forkert filtype.&ovs="& server.urlEncode(Upload.Form("ovs")) &"&txt="& server.urlEncode(Upload.Form("txt")) &"&dato="& server.urlEncode(Upload.Form("dato"))&"&mindstepris="& server.urlEncode(Upload.Form("mindstepris"))&"&budforoegelse="& server.urlEncode(Upload.Form("budforoegelse"))&"&stand="& server.urlEncode(Upload.Form("stand"))&"&ip_log="& server.urlEncode(Upload.Form("ip_log"))&"&startpris="& server.urlEncode(Upload.Form("startpris"))&")")
    end if
elseif
    response.redirect("opret_auktion.asp?menu=fodboldauktioner&action=oprettet")   
End If
response.redirect("opret_auktion.asp?menu=fodboldauktioner&action=oprettet")   
-----------------------------------

Jeg får en syntax error i den sidste 'end if'
Avatar billede fennec Nybegynder
14. maj 2007 - 09:14 #10
Det er elseif'en til sidste. Det skal bare være else:
...
else
    response.redirect("opret_auktion.asp?menu=fodboldauktioner&action=oprettet")   
End If
response.redirect("opret_auktion.asp?menu=fodboldauktioner&action=oprettet")
Avatar billede hehlers Nybegynder
14. maj 2007 - 10:27 #11
slurp - tusind tak fennec. Igen en fornøjelse.

Svarer du lige?
Avatar billede fennec Nybegynder
14. maj 2007 - 10:47 #12
.o) <-- One Eyed Jack
Avatar billede hehlers Nybegynder
21. maj 2007 - 11:20 #13
ooooh fennec - hjæææælp....
Når jeg opretter en auktion uden at vill euploade billede til den, så gemmer den ikke i databasen. Kan du se hvorfor?

mvh

Henrik
Avatar billede hehlers Nybegynder
21. maj 2007 - 11:26 #14
HOV! Har fundet ud af det. min fejl. ;)
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