Springaren Posted March 17, 2020 Share Posted March 17, 2020 Hej, Jag har ett dilemma. Är inloggad som medlem (session ("id") och sen har jag annonser. Där vill jag lägga upp en bild på varje annons. När jag kör detta så får jag fram <%=RecSet("id")%> ALLTSÅ ID PÅ ANNONSER. <% Set conn = Server.CreateObject("ADODB.Connection") Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("/db/members.mdb")&";" Set RecSet = Server.CreateObject("ADODB.Recordset") SQL = "SELECT * FROM annonser WHERE id=" & Request.Querystring("id") RecSet.Open SQL, Conn, 1, 3 %> <form action="" method="post"> <B>Annons ID:</b> <input type="text" name="id" value="<%=RecSet("id")%>" size="5"><br> </form> Sen lägger upp denna kod för att ladda upp min bild: <%Response.Buffer=True Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/members.mdb") If Request.Querystring("action")= "picin" Then byteCount = Request.TotalBytes RequestBin = Request.BinaryRead(byteCount) Set UploadRequest = CreateObject("Scripting.Dictionary") BuildUploadRequest RequestBin contentType = UploadRequest.Item("fil").Item("ContentType") filepathname = UploadRequest.Item("fil").Item("FileName") filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\")) value = UploadRequest.Item("fil").Item("Value") Bild = filename ' hämtar filextension extension = right(Bild,len(Bild) - instr(Bild,".") +1) Filen = "bild_" & trim(Session("id2")) ' bygger ihop det nya filnamnet newfilename = Filen & extension Make_upload = False Filetype = lCase(right(Filename, len(Filename)-instrRev(Filename,"."))) Select Case Filetype Case "jpeg" Make_upload = True Case "jpg" Make_upload = True Case "png" Make_upload = True Case "gif" Make_upload = True End Select If Make_upload = True Then If (byteCount / 1000) > 100 then Session("mess") = "Bilden får max vara <b>100 kb</b>. <br>Din bild var <b>" & Round(byteCount / 1000,1) & "</b> kb!" Response.Redirect "upload_test.asp" Else Set RS=Conn.Execute("Select bild From annonser Where id=" & Session("id2")) Set Mappkoll = Server.CreateObject("Scripting.FileSystemObject") Set Mapp = Mappkoll.GetFolder(Server.MapPath("mempic")) If Mappkoll.FileExists(Mapp & "/" & RS("bild")) Then Mappkoll.DeleteFile(Mapp & "/" & RS("bild")) End If Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject") pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14 Set MyFile = ScriptObject.CreateTextFile(Server.mappath("mempic/" & newfilename)) For i = 1 to LenB(value) MyFile.Write chr(AscB(MidB(value,i,1))) Next MyFile.Close Conn.Execute("Update annonser Set bild='" & newfilename & "' Where id=" & Session("id2")) Session("mess") = "Bilden är nu uppladdad!"%> <script language="JavaScript"> <!-- window.opener.location.reload(); window.opener.location="upload_test.asp?id=<%=Session("id2")%>"; Close = window.close() //--> </script> <!--#Include file="inc/function.asp"--> <%End If Else Session("mess") = "<b>" & extension & "</b> är inte tillåten. <br>Endast <b>.jpg</b>, <b>.jpeg</b> och <b>.gif</b> är tillåtna." Response.Redirect "upload.asp" End If End If%> <html> <head> <title>Ladda upp bild</title> <link rel="stylesheet" href="inc/style.css" type="text/css"> <script src="inc/js.js"></script> </head> <body bgcolor="#000000" onLoad="<%=mess%>"> <table width="100%" height="100%" cellspacing="0" cellpadding="3" style="Border: 1px solid #000000" bgcolor="#D5D2DA"> <form name="frmUpload" method="post" enctype="multipart/form-data" action="upload_test.asp?action=picin" onSubmit="return Mempic()"> <tr> <td align="center" valign="top"><br><b><font size="2">Ladda upp foto till din annons!</font></b> <br><input type="file" name="fil"> <br><div align="left"> <input type="submit" value="Ladda upp"></div> </td> </tr> </form> </table> Nu hamnar bilden i en mapp / Mempic/ med namn: bild_30.jpg Men hamnar fel i access databasen. Den hamnar på rad 30 i tabell ANNONSER. När jag loggar in så är min session ("id") =30. Men jag har en RECSET ("id") och den är EXEMPEL 130. Alltså id 130. Vad gör jag för fel.........?? Tack på förhand. Lite bråttom. Link to comment Share on other sites More sharing options...
.M Posted March 18, 2020 Share Posted March 18, 2020 Du blandar Session("id") och Session("id2") kan det vara en möjlig felkälla? Och när du säger "på rad 30 i annonser" betyder det att id = radnummer eller har du råkat få en annan rad överskriven? Link to comment Share on other sites More sharing options...
Springaren Posted March 18, 2020 Author Share Posted March 18, 2020 Jag testade att ändra id till en id2 och det funkar exakt lika.. gjorde det innan sängdags igår kväll. Link to comment Share on other sites More sharing options...
Cluster Posted March 18, 2020 Share Posted March 18, 2020 Är lite oklart vad du gör/gjort och vad du vill åstadkomma Hur får du session ("id") vid inloggning, vad motsvarar det värdet? Vad är relationen mellan session ("id") och en annons Id? .M 1 Link to comment Share on other sites More sharing options...
Springaren Posted March 18, 2020 Author Share Posted March 18, 2020 Inloggning skapar ID från tabell Members. Sen har jag en tabell annonser. Där också ID. Varje annons är kopplad till Members ID. När jag redigerar Annons har jag klick till Upload sidan. Ladda upp fil. Mitt problem ser ut så här. Jag har session ur = 30. Mitt ID vid inloggning. När jag gör upload idag så hamnar min bild i en mapp samt bildnamn hamnar i tabell annonser ID 30.....fast annons jag gjorde upload hade ID exempel 118. Link to comment Share on other sites More sharing options...
.M Posted March 18, 2020 Share Posted March 18, 2020 Orosmoment är att du återanvänder begreppet ID på flera ställen. Använd istället tydligare begrepp, UserID, AdID, ImageID etc osv. Då blir det mycket enklare att hålla reda på vilket id som används och bör användas på de olika platserna. Spara även ditt id som en variabel i ditt script och använd variabeln, anropa inte Session("ID") mer än en gång per script. Då blir det också mycket enklare att följa koden exakt vad som används och när. Exempelvis detta formulär <form action="" method="post"> <B>Annons ID:</b> <input type="text" name="id" value="<%=RecSet("id")%>" size="5"><br> </form> Används denna input id någonstans i ditt script? Jag ser att du använder det i en sql-select, men inte i din update exempelvis. Borde den användas i din update? Spara i så fall undan den i en variabel och använd variabeln så din kod blir tydligare att förstår. Dim adID = Request.QueryString("ID") … Conn.Execute("Update annonser Set bild='" & newfilename & "' Where id=" & adID) Link to comment Share on other sites More sharing options...
Springaren Posted March 18, 2020 Author Share Posted March 18, 2020 Testar när jag kommer hem från jobbet.... Link to comment Share on other sites More sharing options...
Springaren Posted March 18, 2020 Author Share Posted March 18, 2020 5 timmar sedan, skrev Springaren: Detta gjorde jag bara för att se vilket värde jag hade när jag klickade på annonsen där jag har en länk för att ladda upp bild. Jag får alltså rätt värde med mig till sidan. Det var så jag tänkte. <form action="" method="post"> <B>Annons ID:</b> <input type="text" name="id" value="<%=RecSet("id")%>" size="5"><br> </form> Link to comment Share on other sites More sharing options...
Springaren Posted March 20, 2020 Author Share Posted March 20, 2020 Jag och en granne som jobbar med databas hantering satt igår kväll och löste detta. Det fungerar nu! Stort tack ALLA som har skrivit och läst! Link to comment Share on other sites More sharing options...
Cecilia Posted March 21, 2020 Share Posted March 21, 2020 Du kan inte tänka dig att visa lösningen här utifall att det är någon som får ett likartat problem i framtiden? Link to comment Share on other sites More sharing options...
Springaren Posted March 21, 2020 Author Share Posted March 21, 2020 16 minuter sedan, skrev Cecilia: Du kan inte tänka dig att visa lösningen här utifall att det är någon som får ett likartat problem i framtiden? Skapade en AID " Set RS=Conn.Execute("Select bild From annonser Where id=" & AID) " följt av: Set UpdateConn = Server.CreateObject("ADODB.Connection") UpdateConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("/db/members.mdb")&";" Detta kollar vilka värden som skickas till sidan. <script language="JavaScript"> <!-- console.log('SESSION_ID', <%=Session("id")%>) console.log('SESSION_AID', <%=Session("aid")%>) console.log('AID', <%=AID%>) document.location="mina_annonser.asp?id=<%=Session("aid")%>"; //--> </script> Cecilia 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now