10. august 2003 - 16:43Der er
20 kommentarer og 5 løsninger
Database fejl på server
Hej jeg får følgende fejl på mit webhotel
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x498 Thread 0x590 DBC 0x2266094 Jet'.
' Authes user, password, and fixed a known securitybug to many login systems. strUsername = Trim(Replace(request("username"),"'","''" )) strPassword = Trim(Replace(request("password"),"'","''" ))
Sql = "Select Count(*) as Found from users where (username = '" & strUsername & "') and (password ='" & strPassword & "')" Set LO = RS.Execute(Sql) if LO("Found") = 0 then Session("login") = "" error = "Næ næ du skrev ikke det magiske ord - hat" else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("usersystem.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN strSQL = "SELECT * FROM users where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')" Set ez = myConn.Execute(strSQL) Session("login") = "Authed" Response.Redirect "admin.asp" EZ.Close RS.Close Conn.Close End if End if %>
På dit web-hotel hvor ligger database filen i forhold til din ASP koden?
Typsik skriver man den fulde sti til databasen på et web-hotal da db folderen ligger på samme højde som root for at beskytte mod folk som forsøger at downlaode db filen. De betyder man ikek kan bruge Server.MapPath("../xxx.mdb") til at connecte med, da man ikke med en relativ sti kan komme længere tilbage en root, derfor srkiver man den fulde sti.
Nope det virker stadigt ikke... den anden database virker fint, så jeg prøvede at oprette en tabel der med samme navn - nu visen den formen, men kommer med samme fejl i det jeg prøver at logge ind :(
Det faktisk lige netop det man ikke kan ../ virker ikke samme med den fysiske sti :) Hvis du vil trylle skal du gøre det med Server.Mappath("/") og ikke "." da "." giver "denne folder" hvorimod "/" giver root. Samt lidt instr for at rette wwwroot til db.
nej for det giver stadig samme DB, og der tyder på der er noget ved din fil som gør den ikke virker. Har du prøvet at køre en repair i Access på filen og uploade den igen? (husk gem en backup)
Jeg har engang løst dette problem ved at bruge Hossein's forslag:
<% SET myConn = Server.CreateObject("ADODB.Connection") myConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("usersystem.mdb")
If Request("mode") = "Check" then
' Authes user, password, and fixed a known securitybug to many login systems. strUsername = Trim(Replace(request("username"),"'","''" )) strPassword = Trim(Replace(request("password"),"'","''" ))
Sql = "Select Count(*) as Found from users where (username = '" & strUsername & "') and (password ='" & strPassword & "')" Set LO = myConn.Execute(Sql)
if LO("Found") = 0 then Session("login") = "" error = "Næ næ du skrev ikke det magiske ord - hat" else Session("login") = "Authed" Response.Redirect "admin.asp" End if
Intet virkede men tak for hjælpen - har valgt at lave et script uden db :(
any ways points til alle!
Synes godt om
Ny brugerNybegynder
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.