Avatar billede MetfreakDK Praktikant
10. maj 2007 - 00:29 Der er 23 kommentarer og
1 løsning

Session script - Problem

Nu har jeg snart bøvlet i 4 timer..!
Kan nogen se hvad der er galt her??

login.asp:
<%
if request ("mode") = "login" then
' Opretter forbindelse til databasen
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("login/database.mdb")
Conn.Open DSN  <--- Linie 12 (se længere nede)

'ændre imput
Login = Trim(Replace(Request.Form("Login"),"'","''" ))
Password = Trim(Replace(Request.Form("Password"),"'","''" ))

'Opbygger Sql-sætningen
rsSQL = "SELECT * FROM admin where Login = '" & Login & "' and Password = '" & Password & "'"

' hvis brugeren var i databasen
set rs = Conn.execute(rsSQL)
If Not (rs.BOF Or rs.Eof) Then
Session("ID") = rs("ID")
session("login") = True
Response.redirect "login/logged.asp"

Else


' Hvis brugeren ikke var i databasen
Response.redirect "login/Login.asp"


End If

' Lukker forbindelse til databasen
Conn.Close
Set Conn = Nothing

End if
%>

Og her er fejlen den kommer med:
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 0x1094 Thread 0x300 DBC 0x42bdd2c Jet'.

/login/logged.asp, line 12
----------------------------------------------

Det kan testes på www.gigahamster.dk brug admin/123

Plz kom med en hjælpende hånd! :)
Avatar billede fennec Nybegynder
10. maj 2007 - 08:27 #1
Prøv at bruge en JET connection i stedet. Det løser ofte problemet:
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("login/database.mdb")

Husk at lukke DB forbindelsen inden en redirect:
Conn.Close
Set Conn = Nothing
Response.redirect "login/logged.asp"


Tjek evt også denne:
http://support.microsoft.com/kb/295297
Avatar billede passiflora Juniormester
10. maj 2007 - 09:07 #2
Skal du ikke have <!-- #include file="ADOVBS.inc" --> med
Avatar billede MetfreakDK Praktikant
10. maj 2007 - 09:59 #3
Hvorfor <!-- #include file="ADOVBS.inc" -->  ??
Avatar billede MetfreakDK Praktikant
10. maj 2007 - 10:04 #4
Fennec:
Jeg har lige prøvet at indsætte din linie nu.. Den siger det samme... Hvad er forskellen?
Avatar billede passiflora Juniormester
10. maj 2007 - 10:08 #5
Så vidt jeg ved ligger ADODB.Connection i den inc fil ... glemte lige, du skal jo have filen liggende i samme bibliotek ... før end at det hjælper ...
Avatar billede MetfreakDK Praktikant
10. maj 2007 - 10:11 #6
Ja.. men jeg har slet ikke filen?? Men jeg har har haft det til at virke før.. Men nu virker det ik mere! Hmm.
Avatar billede fennec Nybegynder
10. maj 2007 - 10:12 #7
Det er bare en anden måde at connecte på. Der findes 2 metoder. ODBC og OLE. Der er eksempler her:
http://www.connectionstrings.com/?carrier=access

Den fejl du får opstår gerne fordi serveren ikke er opsat rigtig. Hvis den ene type connection ikke virker kan den anden måske. I dette tilfælde gør den ikke :(

Der er en KB artikkel mere om problemet, men den kan jeg ikke finde i øjeblikket.

Du kan ikke bruge ADOVBS.inc til noget. Det er en samling at standartvariabler, som en person har lavet. Prøv f.eks at google den.
Avatar billede fennec Nybegynder
10. maj 2007 - 10:15 #8
Desuden er det en seriøs fejl at navngive filen .inc, da det betyder at den kan downloades, hvis serveren ikke er sat op til at forhindre det. Hvis man har indsat sin DB connection i sådan en fil, kan enhver få oplysningerne til at få direkte adgang til databasen.

ALLE includefiler skal hedder .asp
Avatar billede cpufan Juniormester
10. maj 2007 - 10:18 #9
jeg syntes fejlkoden minder en del om forkert angivelse af sti til db.

er du sikker på at db ligger der hvor du har angivet det,
og hedder den database.mdb
Avatar billede MetfreakDK Praktikant
10. maj 2007 - 10:23 #10
ARGH.. Hmm nu har jeg prøvet at lave en helt ny database, og ligge den i databases/gigahamster.mdb. men det er stadig samme fejl

Og når jeg gør det så ville jeg mene at stien skal være ../databases/gigahamster.mdb

mit site ligger i www bibloteket..
og database ligger i databases.
Avatar billede fennec Nybegynder
10. maj 2007 - 10:25 #11
Prøv med en absolut sti:
Server.MapPath("/databases/gigahamster.mdb")
Avatar billede MetfreakDK Praktikant
10. maj 2007 - 10:28 #12
Det sjove der at selvom man får fejlen, så bliver man alligevel logget ind... hvis man lige prøver at trykke tilbage og så opdater...
Avatar billede MetfreakDK Praktikant
10. maj 2007 - 10:30 #13
fennec: ja nu kommer med den samme fajl.. bare på en lidt anden måde...
Avatar billede fennec Nybegynder
10. maj 2007 - 10:42 #14
Er det din egen server??
Avatar billede MetfreakDK Praktikant
10. maj 2007 - 10:46 #15
Nej det er ved concor.dk
Avatar billede fennec Nybegynder
10. maj 2007 - 10:57 #16
Nu siger du, at du har smidt databasen i "databases" mappen. Er det en mappe du selv har lavet?

Normalt har webhotel udbyder to mapper. En "DB" mappe og "www" mappe. Access filen skal ligge i "DB" mappen. Det er dog ikke altid, det er lavet sådan.
Avatar billede cpufan Juniormester
10. maj 2007 - 11:02 #17
Server.MapPath("databases/gigahamster.mdb")
Avatar billede cpufan Juniormester
10. maj 2007 - 11:04 #18
prøv at lægge db i den mappe der hedder login,

og lav din connect til dette:

DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("login/gigahamster.mdb")
så får vi opklaret om det er der fejlen har været.
Avatar billede MetfreakDK Praktikant
10. maj 2007 - 11:13 #19
Databases mappen er en som ligger på hotellet...altså jeg har ikke selv lavet den. Jeg venter lige lidt.. for concor er lige ved at kigge på det..
Avatar billede MetfreakDK Praktikant
10. maj 2007 - 11:18 #20
CPUfan.. Det havde jeg til at starte med. og det er den samme fejl... nu har jeg kontaktet concor.dk som jeg har det ved, og de kigger lige på det.. det ka jo være de har et eller andet system hvor databaser skal registreres eller noget i den stil?
Avatar billede mitbrugernavn Praktikant
10. maj 2007 - 11:59 #21
hvis din db ligger i databases mappen (altså jeg forstår du har 2 mapper www og databases) så skal du have stien fra din udbyder - da du skal ud af www mappen for at hente fra db.

jeg bruger denne

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
'denne bruger jeg når jeg arbejder lokalt
'DSN = DSN & "DBQ=" & Server.MapPath("../db/db_navn.mdb")
'denne bruger jeg på serveren
DSN = DSN & "DBQ=E:/sites/LocalUser/navnetpåsitet/data/db_navn.mdb"
Conn.Open DSN

det er denne sti ud skal have oplyst E:/sites/LocalUser/navnetpåsitet/data
Avatar billede MetfreakDK Praktikant
10. maj 2007 - 16:46 #22
Thomas fra concor fik rettet fejlen... Stien skulle være:
/../gigahamster.mdb

Det var bare det / jeg manglede.. Hmm..

Så nu virker det..
Dem der vil ha point smid et svar!
Avatar billede cpufan Juniormester
10. maj 2007 - 22:34 #23
der kommer et svar her
Avatar billede fennec Nybegynder
11. maj 2007 - 08:10 #24
Det må være cpufan's point. Han var først med forkert sti...

.o) <-- One Eyed Jack
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