Toon posts:

[ASP] Username database

Pagina: 1
Acties:

Verwijderd

Topicstarter
Een goeiemiddag,

Ik wou graag een database met usernames/wachtwoorden hebben, en dat je dan kan inloggen.
Nu heb ik dus een database genaamd login, enzovoorts, maar ik kan dan alleen de eerste username/wachtwoord gebruiken, als ik met de 2e record wil inloggen, dan wil dat niet lukken.
Ik gebruik de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%
Dim cnDB
Dim rsQuery

Set cnDB = Server.CreateObject("ADODB.Connection")
cnDB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data source=D:\Accounts\DSAccounts\creepsworld\creepsworld.com\db\database.mdb"
cnDB.Open

Set rsQuery = Server.CreateObject("ADODB.Recordset")
rsQuery.Open "SELECT * FROM login", cnDB

If Request.Form("username") = rsQuery("username") AND Request.Form("password") = rsQuery("password") Then
Session("allow") = True
%>
HIERZO KOMT DE HTML ALS JE BENT INGELOGD!
<%
Else
Server.Execute("failed.inc")
rsQuery.Close
cnDB.Close
End If
%>

Nu wou ik ook nog user levels instellen, maar dat komt later nog wel.
Nu heb ik dus 2 users in mijn database staan;
Administrator - **********
en
Test_username - **********

Als ik dus met Test_username wil inloggen, lukt het dus niet.


Hoe kan ik dit oplossen?

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 03-09 23:48
Omdat je alleen bij het eerste record controleert of de username en password goed zijn.
Een oplossing is om net zo lang te controleren tot de goede combo ertussen zit.
Een betere oplossing is om username en password in de sql-query te zetten. Dus
code:
1
select * from login where user = request.form("user") and password = request.form("password")

Hierbij moet je nog wel even op een aantal dingen letten, want je mag request.* variabelen niet zo maar in je sql-query zetten ivm met de veiligheid.

Verwijderd

Topicstarter
Nu krijg ik dus de volgende error:
Microsoft JET Database Engine error '80040e14'

Undefined function 'request.form' in expression.

/svencoop/database/default.asp, line 26
----------------------------------------

Ik gebruik nu dus deze code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%
Dim cnDB
Dim rsQuery
Dim Username
Dim Password
Dim IPAdress

IPAdress = Request.ServerVariables("REMOTE_ADDR")
Username = Request.Form("Username")
Password = Request.Form("Password")

Set cnDB = Server.CreateObject("ADODB.Connection")
cnDB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data source=D:\Accounts\DSAccounts\creepsworld\creepsworld.com\db\database.mdb"
cnDB.Open

Set rsQuery = Server.CreateObject("ADODB.Recordset")
<<<REGEL 26>>> rsQuery.Open "SELECT * FROM login WHERE user = request.form('user') and pass = request.form('password')", cnDB

If Username = rsQuery("Username") AND Password = rsQuery("Password") Then
Session("Allow") = True
%>

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 03-09 23:48
jaja dat weet ik. Ik had het gewoon even snel neer gezet. Je moet het
code:
1
"select * from login where user = '"&request.form("user")&"' and password = '"&request.form("password")&"'"

zo doen.
Zoals het hier staat is het niet aan te raden voor een definitieve oplossing vanwege veiligheid.
Dit is best wel manual en tutorial stuff, dus kijk daar eens.

  • axis
  • Registratie: Juni 2000
  • Laatst online: 26-01-2023
http://www.4guysfromrolla.com

alles wat je wil weten...

Two advices for network troubleshooting.. learn to draw diagrams in Visio, and THINK IN LAYERS!


Verwijderd

Topicstarter
Nou ben ik iig 2 regels verder :) En toen kwam de volgende error:
-----------------------
error '80020009'
Exception occurred.

/svencoop/database/default.asp, line 28
-----------------------

Eh? Exception?

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 03-09 23:48
Dan ben ik misschien ergens een quote'tje vergeten (ik heb mijn post later aangepast). Of je recordset is leeg.
Als ik jou was zou ik Axis' advies opvolgen.

Verwijderd

Topicstarter
hmmmz, ok, ik zal d'r ff kijken

en nee, m'n record set is niet leeg. en volgens mij geen quote'jes vergeten :)

  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Je hebt de heleboel aan elkaar geplakt
code:
1
"select * from login where user = '" & request.form("user") & "' and password = '" & request.form("password") & "'"

zo moet ie zijn. je had geen spaties tussen de &-tekens en wat ervoor en er achter staat.
Pagina: 1