Behöver hjälp med ASP login koll.

Permalänk
Medlem

Behöver hjälp med ASP login koll.

Hej jag håller på att skriva ett ASP login script och har köra fast lite.
Jag vet inte riktigt hur jag ska göra för att jämföra ett anvnamn och lösen med min databas om de finns.

Det är If satsen vid bottnen som problemet ligger. Just nu går det bara att logga in med ett anvnamn och lösen. Jag vill att den jämför databaslistan med det som skrivits ni i login.asp i 2 st textrutor.
Här är koden:

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <% set Conn=Server.Createobject("ADODB.Connection") Conn.Provider="Microsoft.Jet.OLEDB.4.0" Conn.Open Server.MapPath("databas.mdb") 'Kollar efter tabellen med konton varSQL="select * from TblLogin Order By id Desc;" Set rs=Conn.Execute(varSQL) Do until rs.EOF 'Skapar sessionsvariabler anvnamn = request.form("anvnamn") losen = request.form("losen") session("inloggad") = 0 If anvnamn="daddale" and losen="qwe123"<% Then session("inloggad")=1 response.Redirect("form.asp") Else %> Du skrev fel användaruppgifter, <a href="login.asp">tillbaka</a> <% End If %> </body> </html>

Permalänk
Medlem

Jag vill inte påstå att det är helt optimal att loopa igenom hela databasen med användare och jämföra varje post. Utan där bör du istället ställa en mer intelligent fråga till databasen för att bara få ut ett resultat där du kollar om uppgifterna stämmer.

Sen kommer den där koden inte funka alls med alla felaktiga <%-taggar och för att du aldrig hämtar något från databasen.

sAnvNamn = Request.Form("anvnamn") sPasswd = Request.Form("passwd") ' Här nedan tar vi och rensar bort två farliga tecken, men jag rekommenderar dig att istället skapa en ' funktion som bara släpper igenom godkända tecken istället för att rensa bort otillåtna, men den får ' du göra själv. sAnvNamn = Replace(sAnvNamn, Chr(34), "") ' Ta bort Dubbelfnutt sAnvNamn = Replace(sAnvNamn, Chr(39), "") ' Ta bort enkelfnutt bOK = False set Conn=Server.Createobject("ADODB.Connection") Conn.Provider="Microsoft.Jet.OLEDB.4.0" Conn.Open Server.MapPath("databas.mdb") Set rs = Server.CreateObject("ADODB.RecordSet") ' Här öppnas databasen på ett sådant vis att den inte tillåter uppdateringar. Ett litet skydd injections. rs.Open "SELECT * FROM TblLogin WHERE anvnamn = '" & sAnvNamn & "'", Conn If rs.EOF = False Then ' OK, användaren finns. Kolla nu lösenordet If sPasswd = rs("passwd") Then ' Det stämde så släpp in, men vad gäller lösenord bör du tittat på någon form av hashning eller kryptering bOK = True Else bOK = False End If Else bOK = False End If rs.Close Set rs = Nothing Conn.close Set conn = Nothing If bOK Then Session.Value("inloggad") = True Response.Redirect("form.asp") Else Session.Abandon Response.Write("Felaktigt anvnamn/lösenord!") End If

Hoppas detta är till hjälp.

Permalänk
Medlem
Skrivet av Skogga:

Hoppas detta är till hjälp.

Tack så mycket jag ska testa att sätta in detta.
Är alltid öppen att lära mig mer, jag just börjat mes ASP så kan inte så mycket ännu
Jag ska även försöka till någon sorts kryptering till lösenorden

Mvh, Daddale

Permalänk
Medlem
Skrivet av Skogga:

Hoppas detta är till hjälp.

Tack tack jag har flätat in allt nu det fungerar hur bra som helst!

Mvh, Daddale