webForumDet fria alternativet

Lcase

ASPur ASP

8 svar · 387 visningar · startad av Jeppeweb

Medlem sedan sep. 2006462 inlägg
Frågan#1

Försöker fixa så att om användaren heter "LaRs" även kan skriva "lars"..
Jag får inga felmeddelanden, den verkar bara uppfatta det som fel användarnamn ...

<% If Request.QueryString("action")	= "login"	Then %><!-- #include file="databaskopplingar.asp" --><% 
	SQL = "Select * from medlemmar"
	Set RecSet = Connect.execute(SQL)

	X = FALSE

	Do Until X = TRUE OR RecSet.EOF

If LCase(RecSet("anvandarnamn")) = LCase(Request.Form("anvandarnamn")) Then
			X = TRUE
			Exit Do
		End If

	RecSet.MoveNext

	Loop

	If X = TRUE Then

		Y = FALSE
		Do Until Y = TRUE OR RecSet.EOF

		If RecSet("losenord") = Request.Form("Password") Then
		Y = TRUE
		Exit Do
		End If

		RecSet.MoveNext

		Loop

	End If

	If X = FALSE Then 
		Session("msg") = "Du har anget ett felaktigt användarnamn eller lösenord!"
		response.redirect "menu.asp"
	ElseIf Y = FALSE Then
		Session("msg") = "Du har anget ett felaktigt användarnamn eller lösenord!"
		response.redirect "menu.asp"
	End If

	If X = TRUE AND Y = TRUE Then 
if RecSet("online") = "3" then
	Session("msg") = "Ditt konto är avstängt! Om du har klagomål eller annat kontakta crew per e-mail: admin@hejkompis.be "
	RecSet.Close
	Connect.Close
	response.redirect "main.asp"
else
	if RecSet("aktiverad") = "0" then
		Session("msg") = "Ditt konto är inte aktiverat! Om du ej fått något mail så kontakta admin genom att klicka på länken länst ner till höger på sidan! <br><br>"
		RecSet.Close
		Connect.Close
		response.redirect "main.asp"
	else
	
	
		Session("cmid") = RecSet("id")
		Session("cmanvandarnamn") = LCase(RecSet("anvandarnamn"))
    	Session("cmalias") = RecSet("alias")
		Session("cminloggad") = "ja"
		antalinlogg = RecSet("inloggningar") + 1
		status = status + 1
		online = "1"
		senastip = Request.ServerVariables("REMOTE_ADDR")
		senastdatum = Now
        Response.Cookies("minSajt")("senastdatum") = Now()

		Connect.Execute("update medlemmar set inloggningar = '"&antalinlogg &"', status = '"&status &"', online = '"&online&"', senastip = '"&senastip&"', senastdatum = '"&senastdatum&"' WHERE ID = " & RecSet("id") & "")
		Connect.Execute("INSERT INTO iplogg (ip,datum,vems) VALUES('"& senastip &"','"& senastdatum &"','"& Session("cmid") &"')")

		RecSet.Close
		Connect.Close
end if
end if
    End If 
    
end if
%>
<%
	if session("msg") <> "" then
		Response.Write "<center><br><br><font color=red><big>"&session("msg")&"</big></font><br><br></center>"
		session("msg") = ""
	end if
%>
Medlem sedan okt. 20041 556 inlägg
#2

Nej, nej, du skall inte göra en loop för detta.
Du anger det direkt i din sql.

SQL = "SELECT * FROM medlemmar WHERE anvandarnamn = '" & Request.Form("anvandarnamn") & "' AND losenord = '" & Request.Form("Password") & "'"
Set RecSet = Connect.execute(SQL)

If not RecSet.Eof then
    'Logga in
Else
    'Gör annat
    Session("msg") = "Du har anget ett felaktigt användarnamn eller lösenord!"
    response.redirect "menu.asp"
End if
Medlem sedan sep. 2006867 inlägg
#3

Det kan bero på vilken datatyp du har i SQL-databasen. Prova att ta bort alla mellanslag som ibland följer med, med funktionen trim.

Utöver det så tror jag faktsikt inte att ASP/VBScript eller SQL är skiftlägeskänsligt, SQL bara om man anger det specifikt vid installationen och kanske beroende på databas. Däremot ASP/JScript är skiftlägeskänsligt.

Och ännu mer utöver detta så uppmanar jag dig att verkligen fundera på vad ditt script gör, rad för rad. För det första så skall du kunna koda bort dina X och Y=true/false. För det andra så om man nu hittar en användare (X=true) så skall man väl inte loopa sig till ett lösenord? Utan hittar man en användare så har man väl sannolikt också det exakta lösenordet och inget annat? Om du nu inte tillåter att lera har samma användarnamn fast med olika lösenord men det verkar vara en vasklig lösning...

MVH Jonas

Medlem sedan juni 20019 519 inlägg
#4

ASP är skiftlägeskänsligt

och som Travoni skriver.. inte det bästa sättet att kontrollera lösenord.. då du loopar igenom alla användare du har (tänk om du har 10000 användare) då kommer det tar lååång tid att hitta användaren :D

Medlem sedan juni 200032 967 inlägg
#5

Jag trodde, och hoppades, att idgs gamla inloggningsscript skulle ha försvunnit, men så verkar inte vara fallet.

Mitt tips till Jeppeweb: kasta bort det inloggningsscriptet, och glöm att du någonsin sett det. Hitta något nytt (eller skriv ett eget!), vad som helst är bättre än det hemska, osäkra scriptet du visar i ditt inlägg.

Medlem sedan sep. 2006462 inlägg
#6

Hm, haha.. vilken rådiss login scriptet fick då ;D
Någon som kan rekommendera ett nytt script med Lcase ?

Medlem sedan juni 20019 519 inlägg
#7

Jeppeweb skrev:

Hm, haha.. vilken rådiss login scriptet fick då ;D
Någon som kan rekommendera ett nytt script med Lcase ?

Skriva ett eget? inte jätte svårt att göra det ;)

tror du har fått koderna från idg.se/webstudio ... och dom har inte dom bästa artiklarna om ASP ;)

Medlem sedan sep. 2006462 inlägg
#8

Jag är njuub, om det är så lätt.. kan ni inte hjälpa mig? :)

Medlem sedan juni 20019 519 inlägg
#9

Travonis inlägg är en bra start...

131 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)