I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Den giver mig fejlen i linie 50, som er den der hedder Session("UserID") = Rs("id")
<% ' Skal *altid* stå i STARTEN af scriptet. Server.ScriptTimeout = 60 * 10 Response.Buffer = True
' Function til at fixe SQL's mode "SQL hacks" ' Istedet for at skrive Replace(.., "'", "'") 700 gange kan du nøjes med: ' FixSQL(variabel) Function FixSQL(strSQL) FixSQL = Trim(Replace(strSQL, "'", "''")) End Function
' Sæt reference til Connection objektet Set Conn = Server.CreateObject("ADODB.Connection") ' Åben database forbindelse. Den bruges på HELE siden, så den skal *ikke* lukkes før til aaaaaller sidst i scriptet Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("data/multi.mdb")
' Gem "mode", kun små bogstaver, i strMode strMode = LCase(Request.Querystring("mode"))
' Hvis man klikker rundt på siden og klikker admin, og er logget ind, så får man vist "Muligheder" istedet for. If strMode = "admin" And Session("LoggedIn") = True Then strMode = "loggedin"
' Hvis "mode" er nogle af admin funktioner, men man ikke er logget ind, så sæt strMode til "admin" If strMode = "loggedin" Or strMode = "upload" Or strMode = "muligheder" Then If Not Session("LoggedIn") = True Then strMode = "admin" ' Hvis der blev logget ud .. ElseIf strMode = "logout" Then Session.Abandon Response.redirect "index.asp?mode=admin" End If
' Hvis formen var submitted (POST'ed) ... ' ********************************************* ' Admin login procedure & Fil upload ' ********************************************* If Request.ServerVariables("REQUEST_METHOD") = "POST" Then ' Hvis der bliver forsøgt at logge ind .. If strMode = "login" Then strBrugernavn = FixSQL(Request.Form("brugernavn")) strPassword = FixSQL(Request.Form("adgangskode"))
Set Rs = Conn.Execute("SELECT brugernavn, adgangskode, id FROM login WHERE brugernavn='" & strBrugernavn & "' AND adgangskode='" & strPassword & "'") ' Hvis brugernavnet og koden er ok så luk pomfritten ind. If Not Rs.BOF Then Session("brugernavn") = Rs("brugernavn") Session("adgangskode") = Rs("adgangskode") Session("loggedin") = True Set Rs = Conn.Execute("SELECT id From members Where nick='" & Session("Brugernavn") & "'") Session("UserID") = Rs("id") Response.Redirect "index.asp?mode=loggedin" 'Ellers kan han jo bare fedte af! Else Response.redirect "index.asp?mode=adminfejl" End If
' Hvis der bliver forsøgt at uploade filer '*************************************** ' Fil upload '*************************************** ElseIf strMode = "upload" Then ' Upload filer Set Upload = Server.CreateObject("Persits.Upload.1") Count = Upload.SaveVirtual("dlz/")
' Gennemløb filerne en for en, så de kan gemmes i DB'en For Each File In Upload.Files ' Kun filnavnet strFilename = Right(File.path, Len(File.path) - InStrRev(File.Path, "\"))
' Gem filnavne til senere udskrivning strFilenavne = strFilnavne & "File: " & strFilename & "<br>" ' Indsæt i DB 'Conn.Execute "INSERT INTO filer (filnavn) VALUES ('" & FixSQL(strFilename) & "')" Mydate = cDate(date) dd = day(mydate) mm = month(mydate) yy = year(mydate) MydateFin = dd & "/" & mm & "/" & yy sql = "Insert Into filer(filnavn, beskrivelse, navn, dato) Values('" sql = sql & FixSQL(strFilename) & "','" sql = sql & fixSQL(Upload.form("beskrivelse")) & "','" sql = sql & fixSQL(Upload.form("navn")) & "','" sql = sql & MydateFin & "')" Conn.Execute(sql) Next ElseIf strMode = "uploaddemo" Then ' Upload filer Set Upload = Server.CreateObject("Persits.Upload.1") Count = Upload.SaveVirtual("demo/") ' Gennemløb filerne en for en, så de kan gemmes i DB'en For Each File In Upload.Files ' Kun filnavnet strFilename = Right(File.path, Len(File.path) - InStrRev(File.Path, "\")) ' Gem filnavne til senere udskrivning strFilenavne = strFilnavne & "File: " & strFilename & "<br>" ' Indsæt i DB Mydate = cDate(date) dd = day(mydate) mm = month(mydate) yy = year(mydate) MydateFin = dd & "/" & mm & "/" & yy sql = "Insert Into demo(filnavn, beskrivelse, navn, dato) Values('" sql = sql & FixSQL(strFilename) & "','" sql = sql & fixSQL(Upload.form("beskrivelse")) & "','" sql = sql & fixSQL(Upload.form("navn")) & "','" sql = sql & Mydatefin & "')" Conn.Execute(sql) Next ElseIf strMode = "uploadpic" Then ' Upload filer Set Upload = Server.CreateObject("Persits.Upload.1") Count = Upload.SaveVirtual("gallery/") ' Gennemløb filerne en for en, så de kan gemmes i DB'en For Each File In Upload.Files ' Kun filnavnet strFilename = Right(File.path, Len(File.path) - InStrRev(File.Path, "\")) ' Gem filnavne til senere udskrivning strFilenavne = strFilnavne & "File: " & strFilename & "<br>" ' Indsæt i DB Mydate = cDate(date) dd = day(mydate) mm = month(mydate) yy = year(mydate) MydateFin = dd & "/" & mm & "/" & yy sql = "Insert Into gallery(picnavn, beskrivelse, navn, dato) Values('" sql = sql & FixSQL(strFilename) & "','" sql = sql & fixSQL(Upload.form("beskrivelse")) & "','" sql = sql & fixSQL(Upload.form("navn")) & "','" sql = sql & Mydatefin & "')" Conn.Execute(sql) Next End If End If %>
Prøv lige t udskrive session("brugerid") inden du laver dit select. Den er garanteret noget andet, end det du forventer - og derfor går dit select-statement galt - eller finder i hvert fald ikke nogen records.
Når du løber i en sådan fejl, så check altid hvad der står i variabler, som bruges i where-clausen. Det er 99 af 100 gange her, fejlen ligger.
If Not Rs.BOF Then Session("brugernavn") = Rs("brugernavn") temp = Session("brugernavn") response.write "Session("brugernavn") = '" & temp & "'" Session("adgangskode") = Rs("adgangskode") Session("loggedin") = True Set Rs = Conn.Execute("SELECT id From members Where nick='" & Session("brugernavn") & "'") response.write " id fra members = '" & id & "'"
hov kunne være, jeg skulle beskrive fejlen, så andre kan have gavn af det :)
Ganske rigtigt, mine poster i tabellen login stemte ikke overens med dem i members, hvilket jeg ellers synes jeg havde tjekket 80 gange.. men sådan er det jo når kl. bliver mange og man er frustreret.
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.