webForumDet fria alternativet

Strul med login

ASP

8 svar · 301 visningar · startad av monAmour

Medlem sedan dec. 2002258 inlägg
Frågan#1

Halloj, varför fungerar inte nedanstående.
Försöker ansluta till min mdb fil och köra en query för att kolla om en användare finnns och sedan logga in denne med sessioner.
Får 500 servererror när jag kör sidan?
Vad händer!??!

<%
If Request.Form("username") <> "" And Request.Form("password") <> "" Then
	username = Request.Form("username")
	password = Request.Form("password")

	'Connect to database file
	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("showreal.mdb") 

	Set Rs = Conn.Execute("Select * From users Where username=" & username & "And password=" & password)

	If Not Rs.Eof Then
		Session("username") = username
		Session("password") = password
		Session.Timeout = 20

		Response.Redirect("showreal.asp")
	
	Else 
		Response.Redirect("index.asp?login=false")
	
	End if

Else
	Response.Redirect("index.asp?login=false")

End if
%>
Medlem sedan apr. 20003 174 inlägg
#2

..och hela ditt felmeddelande är?

Medlem sedan dec. 20003 563 inlägg
#3

Det här är i alla fall fel.

"Select * From users Where username=" & username & "And password=" & password
till
"SELECT * FROM users WHERE username=[b]'[/b]" & username & "[b]'[/b] AND password=[b]'[/b]" & password & "[b]'[/b] "
Medlem sedan dec. 2002258 inlägg
#4

Cyprys-> Ah tack, va klumpigt av mig :D

Palle-> Får inget mer felmeddelande än att det blir ett Internal Server Error 500.

Medlem sedan dec. 2002258 inlägg
#5

Okej använder följande nu, får inget server error som tidigare och när jag försöker logga in så blir det en felaktig inloggning hela tiden och jag skickas tillbaka till index.asp.
Dock även när jag skriver korrekta användaruppgifter? Vad är det som inte stämmer här? Valideringen kan inte vara helt korrekt med andra ord.. För man kan aldrig logga in inte äns med de rätta uppgifterna.

<%
If Request.Form("username") <> "" And Request.Form("password") <> "" Then
	username = Request.Form("username")
	password = Request.Form("password")

	'Connect to database file
	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("showreal.mdb") 

	Set Rs = Conn.Execute("Select * From users Where username='" & username & "' And password='" & password & "'")

	'Validate loginattempt
	If Not Rs.Eof Then
		'True
		Session("username") = username
		Session("password") = password
		Session.Timeout = 20

		Response.Redirect("showreal.asp")
	
	Else
		'False
		Response.Redirect("index.asp?login=false")
	
	End if

Else
	Response.Redirect("index.asp?login=false")

End if
%>
Medlem sedan juni 200032 967 inlägg
#6

Palle-> Får inget mer felmeddelande än att det blir ett Internal Server Error 500.

Stäng av Friendly error messages / Egna http-felmeddelanden i Internet Explorer så du åtminstone får vettiga felmeddelanden.

- - - - -

Vilken redirect är det som körs när inloggningen inte fungerar? Är det den övre eller den undre av de två som går till index.asp?login=false?

Medlem sedan dec. 2002258 inlägg
#7

Har fått det att fungera nu! Tack för all hjälp

Medlem sedan juni 200032 967 inlägg
#8

Då vore det på sin plats med en liten lösningsbeskrivning och ett litet klick på "Acceptera som slutgiltigt svar".

Medlem sedan dec. 2002258 inlägg
#9

Lustigt nog var det anslutningen till Access filen som inte fungerade tidigare.. jäkla skumt eftersom raderna är tagna direkt från mitt webbhotell :D
Så här ser den rätta anslutningen ut:

'Connect to database file
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("showreal.mdb") & ";"
249 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)