Avatar billede jensdreier Nybegynder
07. april 2003 - 15:39 Der er 19 kommentarer og
1 løsning

problemer med login script som køre på access

Hejsa .. jeg har en admin zone på mit domain www.badenudist.dk den skal være beskyttet med et logind script og jeg har prøvet på at kode det .. MEN prøv at logge ind på
http://www.badenudist.dk/admin med
user : jens
pass : jens
så kommer der en fejl der ser således ud

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

Microsoft ODBC Microsoft Access Driver Cannot open database '(unknown)'. It may not be a database that your application recognizes, or the file may be corrupt.

/admin/login.asp, line 7


Selve koden i min login.asp som tjekker formen og sender folk vidre til den beskyttede admin side ser således ud

<%
response.buffer=true
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("../db/pass.mdb")
Conn.Open DSN
strSQL = "Select * from pw order by id desc"
Set rs = Conn.Execute(strSQL)
Do

If Request.Form ("navn") = rs("navn") AND Request.Form("pass") = rs("pass") Then

Session("login") = "JA"
session.timeout = 30
response.redirect "admin.asp"

else

session("login") = "NEJ"
Session.timeout = 30
response.redirect "admin.asp"


end if
rs.movenext
Loop while not rs.eof
conn.close
set conn=nothing
%>
Avatar billede jensdreier Nybegynder
07. april 2003 - 15:41 #1
og det skal siges at hvergeng scriptet logger på databasen går databasen i stykker .. jeg fatter det bare ikke
Avatar billede -mundi- Nybegynder
07. april 2003 - 15:41 #2
DSN = DSN & "DBQ=" & Server.MapPath ("../../db/pass.mdb")
Avatar billede -mundi- Nybegynder
07. april 2003 - 15:44 #3
Set Conn = Server.CreateObject("ADODB.Connection")
DSN="Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath ("../db/pass.mdb")
Conn.Open DSN

nu så jeg ikke din kommentar inden jeg svarede første gang, men prøv at bruge denne Provider, jeg har kun haft dårlige erfaringermed "Microsoft access" driveren. Denne viker mere stabil og giver bedre fejlmeddelser
Avatar billede jensdreier Nybegynder
07. april 2003 - 15:46 #4
mundi nej for databasen ligger der .. det er 100% sikket ellers kunne min database jo ikke blive smadret
Avatar billede -mundi- Nybegynder
07. april 2003 - 15:48 #5
hov der har sneget sig et underligt tegn ind istedet for min & (og) tegn
Avatar billede jensdreier Nybegynder
07. april 2003 - 15:49 #6
Nu får jeg en ny fejl ...
Microsoft JET Database Engine error '80004005'

Unrecognized database format 'd:\htdocs\badenudist.dk\db\pass.mdb'.

/admin/login.asp, line 6

og det er selv om jeg uploader en ny database hver gang
Avatar billede -mundi- Nybegynder
07. april 2003 - 15:53 #7
den nye fejl er på grund af den nye driver til at åbne databasen med, jeg kan nu heller ikke åbne databasen, hvilket program bruger du til at lave den med ?
Avatar billede jensdreier Nybegynder
07. april 2003 - 15:55 #8
Microsoft access 2000 ...
Det er mystisk jeg har aldrig før haft problemet, med alle de andre script jeg har lavet. Men i det her login skidt, står mine databaser bare af ...
Avatar billede jensdreier Nybegynder
07. april 2003 - 15:58 #9
Når jeg smider databasen op fejler den intet men første gang jeg prøver at bruge den via mit login script og jeg så downloader den igen så virker den ikke
Avatar billede -mundi- Nybegynder
07. april 2003 - 16:03 #10
du spilder en masse ressourcer ved at loope igennem dit recordset på den måde... Prøv det her istedet, ikke at det burde gøre nogen forskel på din database corruption

<%
response.buffer=true
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN="Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath ("../db/pass.mdb")
Conn.Open DSN

strSQL = "Select * from pw where navn='"&replace(Request.Form ("navn")"'","''")&"' and pass='"&replace(Request.Form("pass"),"'","''")&"'"
Set rs = Conn.Execute(strSQL)
If not rs.eof Then
    Session("login") = "JA"
    session.timeout = 30
    set rs=nothing
    conn.close
    set conn=nothing
    response.redirect "admin.asp"
else
    session("login") = "NEJ"
    Session.timeout = 30
    set rs=nothing
    conn.close
    set conn=nothing
    response.redirect "admin.asp"
end if
%>

derudover burde du få flyttet din database uden for web scopet, sådan som det er nu kan man downe databasen ved at skrive www.badenudist.dk/db/pass.mdb
Avatar billede -mundi- Nybegynder
07. april 2003 - 16:10 #11
havde lige en stavebøf

<%
response.buffer=true
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN="Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath ("../db/pass.mdb")
Conn.Open DSN

strSQL = "Select * from pw where navn='"&replace(Request.Form("navn"),"'","''")&"' and pass='"&replace(Request.Form("pass"),"'","''")&"'"
Set rs = Conn.Execute(strSQL)
If not rs.eof Then
    Session("login") = "JA"
    session.timeout = 30
    set rs=nothing
    conn.close
    set conn=nothing
    response.redirect "admin.asp"
else
    session("login") = "NEJ"
    Session.timeout = 30
    set rs=nothing
    conn.close
    set conn=nothing
    response.redirect "admin.asp"
end if
%>
Avatar billede jensdreier Nybegynder
07. april 2003 - 16:15 #12
ny fejl
Microsoft JET Database Engine error '80040e14'

Syntax error in FROM clause.

/admin/login.asp, line 9
Avatar billede -mundi- Nybegynder
07. april 2003 - 16:22 #13
prøv dette for at få hele sql strengen skrevet ud:

strSQL = "Select * from pw where navn='"&replace(Request.Form("navn"),"'","''")&"' and pass='"&replace(Request.Form("pass"),"'","''")&"'"
response.write strSQL
response.end
Set rs = Conn.Execute(strSQL)
Avatar billede -mundi- Nybegynder
07. april 2003 - 16:27 #14
det ser også ud til at din password tabel hedder password istedet for pw
Avatar billede jensdreier Nybegynder
07. april 2003 - 16:29 #15
*g* nu står der bare
Select * from pw where navn='' and pass='ffff'
når login.asp kommer frem ..
(har ændret user og pass til ffff begge steder)
Avatar billede jensdreier Nybegynder
07. april 2003 - 16:30 #16
Jep jeg har ændret det .. det var lige et hurtig eksperiment jeg havede med at ændre tabellens navn for at se om det hjalp =)
Avatar billede -mundi- Nybegynder
07. april 2003 - 16:31 #17
<%
response.buffer=true
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN="Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath ("../db/pass.mdb")
Conn.Open DSN

strSQL = "Select * from password where navn='"&replace(Request.Form("user"),"'","''")&"' and pass='"&replace(Request.Form("pass"),"'","''")&"'"
Set rs = Conn.Execute(strSQL)
If not rs.eof Then
    Session("login") = "JA"
    session.timeout = 30
    set rs=nothing
    conn.close
    set conn=nothing
    response.redirect "admin.asp"
else
    session("login") = "NEJ"
    Session.timeout = 30
    set rs=nothing
    conn.close
    set conn=nothing
    response.redirect "admin.asp"
end if
%>
Avatar billede -mundi- Nybegynder
07. april 2003 - 16:32 #18
LOL nu havde jeg lige rettet det til password istedet for pw :-)
Avatar billede jensdreier Nybegynder
07. april 2003 - 16:35 #19
Hey jeg fik det krænget
<%
response.buffer=true
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN="Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath ("../db/pass.mdb")
Conn.Open DSN

strSQL = "Select * from pw where navn='"&replace(Request.Form("user"),"'","''")&"' and pass='"&replace(Request.Form("pass"),"'","''")&"'"
Set rs = Conn.Execute(strSQL)
If not rs.eof Then
    Session("login") = "JA"
    session.timeout = 30
    set rs=nothing
    conn.close
    set conn=nothing
    response.redirect "admin.asp"
else
    session("login") = "NEJ"
    Session.timeout = 30
    set rs=nothing
    conn.close
    set conn=nothing
    response.redirect "admin.asp"
end if
%>

var det der virkede
Mange tak for hjælpen .. du får så de 30 point =)
ja jeg skal have flyttet databaserne men jeg har ikke en mappe uden for den normale rod desværre =( jeg nøjes bare med at lave databasen om så den ikke hedder mdb så kan den ikke hentes =)
Avatar billede -mundi- Nybegynder
07. april 2003 - 16:41 #20
endelig :-)
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