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
%>
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
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...
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
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.