men så ska den ju inte se ut... Varför står texten om fel lösen där?
Det har fungerat som det ska innan, men jag vet inte vad som gick snett.
If Not data.EOF Then
If data("losenord")=Request.Form("Losenord") Then
Session("MedlemsID") = data("MedlemsID")
Response.Redirect "laggtill.asp"
Response.End
Else
wrong = "Du har nog inte angett rätt användarnamn!"
response.write wrong
End If
Else
wrong = "Du har nog inte angett rätt lösenord!"
response.write wrong
End If
Du laddar din databas innan du loggar in... så då är ju data.EOF därför får du response.write wrong vid else
Du får ha kanske:
if reqeust.form("losenord") <> "" and request.form("Anvandarnamn") <> "" then
..... kör SQL frågan och hela den kod du visar just nu på inlägg #1
end if
Du vill ju inte ladda databasen i onödan och inte heller förrän formuläret för lösenordet och användarnamnet är "något"
Det finns inget recordset, då kommer du dit i if-satsen.
Utan att se hur du gjort, kan du inte veta att lösenordet är fel pga recordsetet inte fungerar, det kan ju även vara användarnamnet.
Hmmm, det verkar som du först kontrollerar om användarnamnet finns, och sedan lösenordet. Så kan du inte göra, då kan man korsa användarnamn med lösenord som man vill och logga in!
(Det är ett klassiskt kodexempelfel från IDG!)
Kontrollera inloggningsrättigheter genom att hämta båda två i samma fråga.
Det finns inget recordset, då kommer du dit i if-satsen.
Utan att se hur du gjort, kan du inte veta att lösenordet är fel pga recordsetet inte fungerar, det kan ju även vara användarnamnet.
Hmmm, det verkar som du först kontrollerar om användarnamnet finns, och sedan lösenordet. Så kan du inte göra, då kan man korsa användarnamn med lösenord som man vill och logga in!
(Det är ett klassiskt kodexempelfel från IDG!)
Kontrollera inloggningsrättigheter genom att hämta båda två i samma fråga.
Kan du möblera om och visa hur du menar? (Jag är nyyybörjare på asp...)
<%
sql = "SELECT * FROM anvandare WHERE anvandarnamn='" & Replace(Request.Form("Anvandarnamn"), "'", "''") & "'"
set data = MinCon.execute(sql)
If Not data.EOF Then
If data("losenord")=Request.Form("Losenord") Then
Session("MedlemsID") = data("MedlemsID")
Response.Redirect "laggtill.asp"
Response.End
Else
wrong = "Du har nog inte angett rätt användarnamn!"
response.write wrong
End If
Else
wrong = "Du har nog inte angett rätt lösenord!"
response.write wrong
End If
%>
<%
if request.form("losenord") <> "" and request.form("Anvandarnamn") <> "" then
sql = "SELECT * FROM anvandare WHERE anvandarnamn='" & Replace(Request.Form("Anvandarnamn"), "'", "''") & "' AND losenord = '" & Replace(Request.Form("Losenord"), "'", "''") &"'"
set data = MinCon.execute(sql)
If Not data.EOF Then
Session("MedlemsID") = data("MedlemsID")
Response.Redirect "laggtill.asp"
Response.End
Else
wrong = "Du har nog inte angett rätt användarnamn eller Lösenord!"
response.write wrong
End If
End If
%>
hade jag gjort.. och varför använder du inte SafeSQL() som du gör på den andra inlägget du har gjort på wF... du vill inte ha SQLInjection här heller ;)
Lägg till ... AND losenord=Request.Form("Losenord") ... i din WHERE-sats, och din Replace-funktion runt den.
Tag sedan bort else-satsen med lösenords-texten.
Bör fungera, men du kommer ju, som voigtann1 påpekar, belasta servern med en fråga fast du inte försökt logga in.
När detta fungerar, kan du fundera på att flytta inloggningskoden till en separat fil, om du vill.
I den kör du response.redirect i en ifsats till inloggad.asp eller tillbaka till inloggninssidan om det är fel.
Finns exempel på wF hur detta ser ut.
<%
if request.form("losenord") <> "" and request.form("Anvandarnamn") <> "" then
sql = "SELECT * FROM anvandare WHERE anvandarnamn='" & Replace(Request.Form("Anvandarnamn"), "'", "''") & "' AND losenord = '" & Replace(Request.Form("Anvandarnamn"), "'", "''") &"'"
set data = MinCon.execute(sql)
If Not data.EOF Then
Session("MedlemsID") = data("MedlemsID")
Response.Redirect "laggtill.asp"
Response.End
Else
wrong = "Du har nog inte angett rätt användarnamn eller Lösenord!"
response.write wrong
End If
End If
%>
hade jag gjort.. och varför använder du inte SafeSQL() som du gör på den andra inlägget du har gjort på wF... du vill inte ha SQLInjection här heller ;)
Jo, det kanske jag skulle ha, har inte kommit så långt i funderingarna ännu ;)
(Edit, först funkade det inte, sen såg jag att det stod anvandarnamn i lösenordsrutan också, ändrade till losenord och sen funkade det)