Kontrol asp

Tags:    asp

Hej jeg har lavet den her kode. Men som nogen nok kan se vil man kunne logge sig på som f.x morten og så bruge peters kode. Det er ikke så smart. Håber der er nogen som har tid. Har siddet hele natten smil.

Kode:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">


<head>
<title>Mit dokument</title>

</head>
<body>
<div id = "logon">
<form method="POST" action="default.asp" style="margin: 0px;">
<input type="text" name="nickname" value = "NICKNAME" size="10">
<input type="text" name="password" value = "PASSWORD" size ="10">
<input type="submit" value="LOGIN" name="Action"></form>
</diV>




<%
'<!--#include file="back.asp"-->


If Request.Form("Action") = "LOGIN" Then

'Loop throug the db to see if the name (navn) already exists
'
'Database kontakt
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = 3
DNS = "DRIVER={Microsoft Access Driver (*.mdb)};"
DNS = DNS & "DBQ=" & Server.Mappath("login_2000.mdb")
'Database åben
Conn.Open DNS
'db query
'the query returns the numbers of rows with the same name as the user has entered
strSQL = "SELECT Count(nickname) AS Counter FROM user WHERE nickName ='" & Request.Form("nickname") & "'"

'Creste object recordset
Set oRs = Conn.Execute(strSQL)


If oRs("Counter") = 1 Then

strSQL = "SELECT Count(password) AS Counter FROM user WHERE password = '" & Request.Form("password") & "'"
Set oRs = Conn.Execute(strSQL)


if oRS("Counter") = 1 then

response.redirect("start.asp")
end if
Else
Response.Write("En bruger med det navn eksistere allerede.<br />Vær venlig at vælge et andet.")
End If

Conn.Close

end If
%>
</body>



6 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 9 karma
Sorter efter stemmer Sorter efter dato
Hej

Har lige svaret på www.tweakup.dk også. Men her er et forslag:
Fold kodeboks ind/udKode 


På den måde vil du kun få en række hvis både password og brugernavn er tilstede i en række i databasen.

Har ikke lige tjekket koden, men tror den kan bruges.



Brug det her!

Fold kodeboks ind/udKode 


Idéen med din kode er god nok, men det er konsturet forkert. Således som du selv nævner det: kan en logge på med en anden password. Så det gælder om at kontrollere username og password samtidigt, sådan at der findes en post i tablen user hvor felterne username og password passer ovens med de indtastede oplysninger.

Du vil også få problemer senere! For nu kan enhver bare gå ind på siden start.asp og få adgang til systemt. Så du skal bruge session til at begrænse adgangen!



Hej

Før response.redirect("start.asp")

skal du have en

session("godkendt") = 1


og øverst i start.asp filen skal du have en

if session("godkendt")<> 1 then
response.redirect("siden du skriver nickname & password")
end if

så sikre du at man ikke bare kan starte filen start.asp

Allan



Indlæg senest redigeret d. 11.10.2007 13:18 af Bruger #12604
Det virker bare ikke rigtig?:$



Prøv dette:

strSQL = "SELECT * FROM user WHERE nickname ='" & Request.form('nickname') & "' AND password ='" & Request.form('password') & "'";







t