Toon posts:

[ASP] Login Error

Pagina: 1
Acties:

Verwijderd

Topicstarter
He,

Ik moet nu een inlog gedeelte maken voor een website alleen krijg ik een error:
-------
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 0x4bc Thread 0x71c DBC 0x218c024 Jet'.

/beheer/check_user.asp, line 24 \
-------
En line 24 zegt het volgende: AdoCon.open strcon

zou iemand mijn alsjeblieft kunnen helpen?

Alvast Bedankt

PS Dit is zo'n beetje de eerste keer dat ik met database werk. Heb de search al gebruikt maar daar kan ik niet wijzer uitworden

  • Reut
  • Registratie: September 2001
  • Laatst online: 04-05 11:46

Reut

Tjoepie, nu met schroefdoppie

En wat staat er dan in strcon? :?

Boom......Boom......Boom......Boom......Boom......booooooooooom


Verwijderd

Topicstarter
Ik denk dat je dit bedoelt:


strCon = "DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=letmein; DBQ=" & Server.MapPath(strAccessDB)

  • Reut
  • Registratie: September 2001
  • Laatst online: 04-05 11:46

Reut

Tjoepie, nu met schroefdoppie

Ja, en wat staat er in strAccessDb?

Boom......Boom......Boom......Boom......Boom......booooooooooom


Verwijderd

Topicstarter
Ik dacht laat ik nu maar ff het hele script posten :)

<%
'Dimension variables
Dim adoCon 'Database Connection Variable
Dim strCon'Holds the Database driver and the path and name of the database
Dim rsCheckUser 'Database Recordset Variable
Dim strAccessDB 'Holds the Access Database Name
Dim strSQL 'Database query sring
Dim strUserName 'Holds the user name

'Initalise the strUserName variable
strUserName = Request.Form("txtUserName")

'Check the database to see if user exsits and read in there password
'Initialise the strAccessDB variable with the name of the Access Database
strAccessDB = "users"

'Create a connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

'Database connection info and driver
strCon = "DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=letmein; DBQ=" & Server.MapPath(strAccessDB)

'Set an active connection to the Connection object
adoCon.Open strCon

'Create a recordset object
Set rsCheckUser = Server.CreateObject("ADODB.Recordset")

'Initalise the strSQL variable with an SQL statement to query the database
strSQL = "SELECT tblUsers.Password FROM tblUsers WHERE tblUsers.UserID ='" & strUserName & "'"

'Query the database
rsCheckUser.Open strSQL, strCon

'If the recordset finds a record for the username entered then read in the password for the user
If NOT rsCheckUser.EOF Then

'Read in the password for the user from the database
If (Request.Form("txtUserPass")) = rsCheckUser("Password") Then

'If the password is correct then set the session variable to True
Session("blnIsUserGood") = True

'Close Objects before redirecting
Set adoCon = Nothing
Set strCon = Nothing
Set rsCheckUser = Nothing

'Redirect to the authorised user page and send the users name
Response.Redirect"authorised_user_page.asp?name=" & strUserName
End If
End If

'Close Objects
Set adoCon = Nothing
Set strCon = Nothing
Set rsCheckUser = Nothing

'If the script is still running then the user must not be authorised
Session("blnIsUserGood") = False

'Redirect to the unautorised user page
Response.Redirect"unauthorised_user_page.htm"
%>

  • Reut
  • Registratie: September 2001
  • Laatst online: 04-05 11:46

Reut

Tjoepie, nu met schroefdoppie

In welk pad staat jouw users db op je server?

(en zet je script even tussen code tags)

Boom......Boom......Boom......Boom......Boom......booooooooooom


  • Pogostokje
  • Registratie: September 2001
  • Laatst online: 02-09 07:49

Pogostokje

* twiet *

Kan je niet een DSN aanvragen of aanmaken op die webserver. Scheelt je een hoop gedoe met filepaths. Want dat gaat waarschijnlijk fout bij jou: hij heeft problemen met het openen van de database 'users'. Lijkt mij trouwens dat dat op zijn minst 'users.mdb' moet zijn oid.

... ook ik heb soms per ongeluk gelijk.


  • Reut
  • Registratie: September 2001
  • Laatst online: 04-05 11:46

Reut

Tjoepie, nu met schroefdoppie

Even een voorbeeld van een connectiestring die ik gebruik..
Let op de subdir die ik meegeef in het pad..
code:
1
"DBQ=" & Server.MapPath("/WebTemplate/data/template.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"

Boom......Boom......Boom......Boom......Boom......booooooooooom


  • Pogostokje
  • Registratie: September 2001
  • Laatst online: 02-09 07:49

Pogostokje

* twiet *

Je maakt nu een paar grote fouten.

1. Zet NOOOOOOIT je database in een path waar je vanaf internet bij kan. Dan kan namelijk IEDEREEN die database downloaden en simpelweg je username en password lezen. GROTE FOUT.

2. Als je over serverpaths praat dan gaat het niet om waar het ding op internet staat, maar hoe de server er bij kan op zijn eigen schijven ... dus "D:\data\users\blablabla\users.mdb"
Dat kan je heel simpel oplossen door gebruik te maken van DSN, wat ik zojuist al opperde. Dan heb je niks met dat path te maken als het eenmaal is ingesteld.

... ook ik heb soms per ongeluk gelijk.


  • Pogostokje
  • Registratie: September 2001
  • Laatst online: 02-09 07:49

Pogostokje

* twiet *

Nog even twee opmerkingen. ;)

1. Je database bevat een 'database password', ik denk dat dat niet gaat werken. Je kan hooguit een user aanmaken met een password maar een compleet database password op de database heb ik nog niet werkend gezien ergens... je kan dat password ook niet in je connect string meegeven.
Daarbij, deze passwords zijn te kraken ... vertrouw er niet op.

2. Je gebruikt een Access 2000 of nieuwer bestandsformaat. De meeste Win2K webservers snappen out-of-the-box alleen Access 97, tenzij er speciaal nieuwere ADO spul op gezet is. Maar dat zou je na moeten vragen bij de beheerders van die server.

... ook ik heb soms per ongeluk gelijk.


  • Reut
  • Registratie: September 2001
  • Laatst online: 04-05 11:46

Reut

Tjoepie, nu met schroefdoppie

1. Zet NOOOOOOIT je database in een path waar je vanaf internet bij kan. Dan kan namelijk IEDEREEN die database downloaden en simpelweg je username en password lezen. GROTE FOUT.
idd, niet doen. Altijd redirecten naar een andere locatie als er een request komt voor deze dir.
2. Als je over serverpaths praat dan gaat het niet om waar het ding op internet staat, maar hoe de server er bij kan op zijn eigen schijven ... dus "D:\data\users\blablabla\users.mdb"
Dat kan je heel simpel oplossen door gebruik te maken van DSN, wat ik zojuist al opperde. Dan heb je niks met dat path te maken als het eenmaal is ingesteld.
Hij wil gewoon een dns-less verbinding. Kan prima, gebruik ik ook altijd.

Boom......Boom......Boom......Boom......Boom......booooooooooom


Verwijderd

Topicstarter
Ik zal er volgende keer om denken maar alles wat ik nu maak is tot nu toe toch nog een test! dus ik zou het password van de database afmoeten halen en een Microsoft '97 dabase moeten maken.

Ik had dat van die map path veranderd alleen verwijst hij nog steedts naar Line 24

Hoe kan ik zo'n DNS-Less verbinding maken of moeten de beheerders van de server dat doen?

  • Pogostokje
  • Registratie: September 2001
  • Laatst online: 02-09 07:49

Pogostokje

* twiet *

Hij wil gewoon een dns-less verbinding. Kan prima, gebruik ik ook altijd.
Tuurlijk, werkt ook wel.
Maar uit beheersoogpunt is het makkelijker om met DSN te werken. Dan maakt het namelijk niet uit waar die database staat op de server. Maar verder heeft het geen voor/nadelen. Net wat je zelf wil. :)

... ook ik heb soms per ongeluk gelijk.


  • Pogostokje
  • Registratie: September 2001
  • Laatst online: 02-09 07:49

Pogostokje

* twiet *

Hoe kan ik zo'n DNS-Less verbinding maken of moeten de beheerders van de server dat doen?
Ja.
Die moeten bij hun 'odbc instellingen' een 'System DSN' aanmaken.
Als je de beheerders niet kunt bereiken zal je zelf het juiste path naar die database moeten achterhalen voor een niet-DSN verbinding zeg maar. Dat kan je bv. doen door dat via ASP op te vragen.

... ook ik heb soms per ongeluk gelijk.


Verwijderd

Draai je PWS? Werkt overigens alleen op IIS!

Verwijderd

Topicstarter
En stel de beheerders willen geen DNS-Less Verbinding
(Zal wel ff bellen) maar stel ze willen het niet

is er dan nog een andere oplossing.

  • Pogostokje
  • Registratie: September 2001
  • Laatst online: 02-09 07:49

Pogostokje

* twiet *

En stel de beheerders willen geen DNS-Less Verbinding
(Zal wel ff bellen) maar stel ze willen het niet
is er dan nog een andere oplossing.
Sorry, ik zei het verkeerd om. |:(
Voor een DSN (let op, niet DNS) verbinding heb je de beheerders nodig. Een DSN-less kan je zelf maken zoals je in je script al probeert. Dat kan zonder werk aan hun kant. Mits ze die access database-driver inderdaad vrijgegeven hebben.

... ook ik heb soms per ongeluk gelijk.


Verwijderd

Topicstarter
Op woensdag 03 juli 2002 10:04 schreef Pogostokje het volgende:

[..]

Sorry, ik zei het verkeerd om. |:(
Voor een DSN (let op, niet DNS) verbinding heb je de beheerders nodig. Een DSN-less kan je zelf maken zoals je in je script al probeert. Dat kan zonder werk aan hun kant. Mits ze die access database-driver inderdaad vrijgegeven hebben.
Oke DSN-Less Verbinding (weer wat geleerd :) ) maar je zegt dat je de beheerders nodig hebt en even verder op zeg je dat ik het zelf kan maken in het script :?

  • Pogostokje
  • Registratie: September 2001
  • Laatst online: 02-09 07:49

Pogostokje

* twiet *

Ik was even in de war door al die DSN dingen. :)

DSN moet je aanvragen, daar is een handeling op de server voor nodig.
Zoals jij het probeert in het script refereer je rechtstreeks aan een access bestand en dan maak je geen gebruik van DSN. Je hebt dan de beheerders niet nodig.

... ook ik heb soms per ongeluk gelijk.


Verwijderd

Topicstarter
Oke maar nu werkt het nog steeds niet en ik zou het graag werkend willen hebben zonder de beheerder lastig te vallen.

  • Pogostokje
  • Registratie: September 2001
  • Laatst online: 02-09 07:49

Pogostokje

* twiet *

Nouja, eh, wat werkt er niet dan nu je alles weet? :)

... ook ik heb soms per ongeluk gelijk.


  • WimB
  • Registratie: Juli 2001
  • Laatst online: 30-03-2024
Probeer anders dit eens:
code:
1
2
3
4
5
6
set cnn=Server.CreateObject("ADODB.Connection")
with cnn
    .Provider="Microsoft.Jet.OLEDB.4.0"
    .Properties("Jet OLEDB:Database Password") = "123"
    .Open Server.MapPath("\dblocatie\database.mdb")
end with

Verwijderd

Probeer er eens zoiets van te maken:

----------------------------------------------------------

Dim DBConn, ConnStr
Set DBConn=Server.CreateObject("ADODB.Connection")

ConnStr =_
"Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.MapPath("Users.mdb") & ";" &_
"Persist Security Info=False"

<!-- Eerst ff controleren of het ge-map-te pad klopt door de connectiestring op het scherm te zetten-->

Response.Write ConnStr

----------------------------------------------------------

Als het pad klopt, verander je Reponse.Write in DBConn.Open en dan zou het moeten werken...

Verwijderd

Oh, en btw: Niet vergeten om "<%Response.Buffer=TRUE%>" aan het begin van je pagina te zetten als je Response.Redirect gebruikt in een pagina WAAR OOK html inzit...
Pagina: 1