Avatar billede djsteiner Nybegynder
02. december 2008 - 10:41 Der er 8 kommentarer og
1 løsning

asp update

Hej jeg har fået et problem som jeg ikke selv kan løse, håber lige at nogle af jer eksperter kan hjæplpe.
jeg ville gerne have tilføjet noget til denne kode som gør at når man foreksmpel kun vil opdatere prisen at der så ikke kommer nogen fejmeddelse.  Her har i min kode some den ser ud nu.

<%
case "ret"

rediger = request.QueryString("red")
if rediger = 2 then




set upload = Server.CreateObject("Persits.Upload")

upload.OverwriteFiles = False

path = Server.MapPath("../upload")

Count = Upload.Save(Path)

            pid = upload.form("p_id")
            intvarer = upload.Form("intvarer")
            strproduktnavnVar = upload.Form("strProduktNavn")
            intbrandnavnVar = upload.Form("intbrandtype")
            strlongtextVar = upload.Form("FCKeditor")
            intprisVar = upload.Form("strpris")
           
           
           
           


    If Count = 0 then
        response.write "Ingen billeder valgt"
    else
            'Fang filen til upload
        Set File = Upload.Files(1)
       
        'Tjek filformat
        if File.Ext <> ".jpg" then
            response.write"Forkert fil format"
            response.End()
        end if
       
        'Er det en gyldig billede fil?
        If File.ImageType <> "UNKNOWN" then
            Set Jpeg = Server.CreateObject("Persits.Jpeg")
           
            'Åben den uploadede fil
            Jpeg.Open(File.Path)
           
            w = 70
           
            jpeg.Width = w
            jpeg.Height = jpeg.OriginalHeight * w / jpeg.OriginalWidth
           
            PathT = Server.MapPath("../upload")
           
            'angiv hvor filen skal gemmes
            SavePath = PathT & "\small_" & File.ExtractFileName
           
           
           
            dbPath = replace(Server.MapPath("../upload"),"\","\\")
           
            filnavn = File.ExtractFileName
           
           

           
            'Fang billede navnet
            img = File.ExtractFileName
           
           
            'Gem filen
            Jpeg.Save SavePath
           
           
           
           
           
           
            sql = "SELECT * FROM produkter WHERE pid="&pid
    set rs = Conn.Execute(sql)
           
sqlret = "update produkter set pname='"&strproduktnavnVar&"', brand_id='"&intbrandnavnVar&"',pdesc='"&strlongtextVar&"',pprice='"&intprisVar&"',ppic_small='"&img&"' WHERE pid="&pid
            Conn.Execute(sqlret)
           
           
           
           
           
            'Udskriv bekræftigelse
            Response.write "Success!"
            response.Redirect("?admin=opret")
           
           
           
           
           
        else
            'Udskriv fejlbesked
            response.write "Filen er ikke en gyldig billede fil"
            response.End()
            end if
            end if
            end if
       


    ret_p = request.queryString("ret_p")
    if not request.QueryString("ret_p") = "" then
   
   
   
    sql_ret = "SELECT * FROM  produkter , produktgrupper WHERE produkter.gid = produktgrupper.gruppe_id and pid="&ret_p&""
    set rs_ret = Conn.Execute(sql_ret)
    %>
Avatar billede djsteiner Nybegynder
02. december 2008 - 10:44 #1
Her er formularen

<form method="post" action="admin.asp?mycase=ret&red=2"name="form1" enctype="multipart/form-data" >
<input type="hidden" name="p_id" value="<%=rs_ret("pid")%>" /><br  />
 
   

 
Redigering af produkter<br /><br />


<%
sql5 = "SELECT * FROM brand order by b_id desc "
set rs5 = Conn.Execute(sql5)
%>   
Brand-typer <select name="intbrandtype">
<option>Valg af Brand-typer</option>
<%
do until rs5.eof
%>
<option name="intbrandtype" value="<%= rs5("b_id") %>"><%= rs5("brand") %></option>   
<%
rs5.movenext
loop
%>
</select><br /><br />



Produkt-Navn:</span> <input type="text" name="strProduktNavn" value="<%= rs_ret("pname")%>" /><br /><br />

Produkttekst:<br /><br />
   

<%
        Set oFCKeditor = New FCKeditor
        oFCKeditor.BasePath = "../fckeditor/"
        oFCKeditor.Value = ""&rs_ret("pdesc")&""
        oFCKeditor.Create "FCKeditor"
        %>
   
    <br /><br />
   
    Pris:&nbsp;<input type="text" name="strpris" value="<%= rs_ret("pprice")%>" /><br /><br />
    Upload Billede &nbsp;<input type="file" name="file2" /><br /><br />
   
                          <input type="submit" value="Opret" />   
</form>
<%end if%>
Avatar billede softspot Forsker
02. december 2008 - 16:42 #2
Hvad er det for en fejl du får?
Avatar billede djsteiner Nybegynder
02. december 2008 - 19:41 #3
jeg får kun en fejl når jeg ikke udfylder hele formularen og det virker heler ikke hvis jeg ikke uploader et billede.
og så var det at jeg gerne ville have tilføjet noget kode som gjorde det mugligt at man for eksempel kunne nøjes med at rette prisen.

noget i denne stil:  IF intbrandnavnVar = empty then 
jeg ved bare ikke lige hvordan jeg skal skive det og hvor i koden.
Avatar billede softspot Forsker
03. december 2008 - 00:32 #4
Du skal prøve at svare på det jeg spørger om, nemlig hvad er det for en fejl du får hvis du ikke udfylder alle felter (herunder angiver en fil til upload)?

Jeg skal bruge det til at vurdere hvad problemet rent faktisk er.
Avatar billede djsteiner Nybegynder
03. december 2008 - 11:21 #5
Denne fejmeddelse kommer "Ingen billeder valgt". denne fejmeddelse er en del af koden.

If Count = 0 then
        response.write "Ingen billeder valgt"
    else

Det skuller gerne være sådan at man for eksempel skulle kunne opdertere prisen uden at uploade et billede

måske man kunne skrive noget i denne stil:  "IF intbrandnavnVar = empty then "

håber dette er lidt mere forståligt
Avatar billede softspot Forsker
03. december 2008 - 11:47 #6
Jo, jeg kan godt forstå hvad det er du vil, men det var bare et spørgsmål om, at forstå hvilket problem du kæmpede med :-)

Jeg ville bare lave koden til at opdatere, uden at ændre billedet, i den forgrening hvor Count = 0, altså:


<%
case "ret"

rediger = request.QueryString("red")
if rediger = 2 then
  set upload = Server.CreateObject("Persits.Upload")
  upload.OverwriteFiles = False
  path = Server.MapPath("../upload")
  Count = Upload.Save(Path)

  pid = replace(upload.form("p_id"),"'","''")
  intvarer = replace(upload.Form("intvarer"),"'","'')
  strproduktnavnVar = replace(upload.Form("strProduktNavn"),"'","'')
  intbrandnavnVar = replace(upload.Form("intbrandtype"),"'","'')
  strlongtextVar = replace(upload.Form("FCKeditor"),"'","'')
  intprisVar = replace(upload.Form("strpris"),"'","'')

  If Count = 0 then
    sqlret = "UPDATE produkter " & _
            "SET pname='"&strproduktnavnVar&"'," & _
            "brand_id='"&intbrandnavnVar&"'," & _
            "pdesc='"&strlongtextVar&"'," & _
            "pprice='"&intprisVar&"' " & _
            "WHERE pid="&pid
    Conn.Execute(sqlret)
           
    'Udskriv bekræftigelse
    Response.write "Success!"
    response.Redirect("?admin=opret")
  else
    'Fang filen til upload
    Set File = Upload.Files(1)
       
    'Tjek filformat
    if File.Ext <> ".jpg" then
      response.write"Forkert fil format"
      response.End()
    end if
       
    'Er det en gyldig billede fil?
    If File.ImageType <> "UNKNOWN" then
      Set Jpeg = Server.CreateObject("Persits.Jpeg")
           
      'Åben den uploadede fil
      Jpeg.Open(File.Path)
           
      w = 70
     
      jpeg.Width = w
      jpeg.Height = jpeg.OriginalHeight * w / jpeg.OriginalWidth
           
      PathT = Server.MapPath("../upload")
           
      'angiv hvor filen skal gemmes
      SavePath = PathT & "\small_" & File.ExtractFileName
           
      dbPath = replace(Server.MapPath("../upload"),"\","\\")
           
      filnavn = File.ExtractFileName
           
      'Fang billede navnet
      img = File.ExtractFileName
           
      'Gem filen
      Jpeg.Save SavePath
           
      sql = "SELECT * FROM produkter WHERE pid="&pid
      set rs = Conn.Execute(sql)
           
      sqlret = "update produkter " & _
              "set pname='"&strproduktnavnVar&"'," & _
              "brand_id='"&intbrandnavnVar&"'," & _
              "pdesc='"&strlongtextVar&"'," & _
              "pprice='"&intprisVar&"'," & _
              "ppic_small='"&img&"' " & _
              "WHERE pid="&pid
      Conn.Execute(sqlret)
           
      'Udskriv bekræftigelse
      Response.write "Success!"
      response.Redirect("?admin=opret")
           
    else
      'Udskriv fejlbesked
      response.write "Filen er ikke en gyldig billede fil"
      response.End()
    end if
  end if
end if

ret_p = request.queryString("ret_p")
if not request.QueryString("ret_p") = "" then
  sql_ret = "SELECT * " & _
            "FROM produkter, produktgrupper " & _
            "WHERE produkter.gid = produktgrupper.gruppe_id " & _
            "AND pid="&ret_p&""
  set rs_ret = Conn.Execute(sql_ret)
end if
%>

Dette er med udgangspunkt i din kode og der er ikke gjort specielt meget ved formen (for at du kunne genkende koden igen), men jeg vil fog knytte den kommentar, at din egen kode er pivåben overfor SQL-ibjections og andre fejlkilder (så som typefejl i input). Derfor vil jeg anbefale at du gør mere ud af at sikre de input du smider efter databasen, ved dels at tjekke om input er valid i forhold til felterne i databasen, dels at benytte en mere sikker medtode til at udføre dine SQL-sætninger imod databasen. Tag evt. et kig på min artikel om parameterisering, hvor det sidste problem med sikring mod SQL-injections skulle blive løst. Du kan finde artiklen her: http://www.eksperten.dk/artikler/1250. Der findes mange andre sider på nettet som omhandler sikring mod SQL-injections (det er et emne du bør bruge lidt tid på :)).
Avatar billede djsteiner Nybegynder
03. december 2008 - 14:33 #7
Hej mange tak for hjælpen er lige ved at studere din arktikle og ja  den kan helt sikkert bruges.

jeg har også fået mit problem løst.

smid lige et svar så giver jeg point.
Avatar billede djsteiner Nybegynder
26. februar 2009 - 22:47 #8
Lukker lige dette spørsmål
Avatar billede softspot Forsker
26. februar 2009 - 22:55 #9
Nå, den havde jeg lige overset - sorry :-)
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