Hej, jag har ett problem med det login system jag försöker bygga (ville göra ett själv dels för att lära mig och dels för att slippa en massa copyright text som alla kräver ska stå kvar om man laddar hem). Jag får "Sidan kan inte visas" :( Hej, oops Hej. Ok tack så mkt allihopa jag ska nu se om något av detta kan fixa problemet, dety där med den glömda ")" bör ju fixa det :) Japp! Funkar perfekt! Tack så mkt, det är sånt som är så bra med forum :)Login Script
Här är filerna som jag håller på med nu:
loginsida.asp
<code><html>
<head>
<title>aspsidan</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<STYLE TYPE="TEXT/CSS">
<!--
A:HOVER { color: red }
A { Text-Decoration: none }
body {
background-color: #000000;
scrollbar-face-color: #000000;
scrollbar-highlight-color: #FF0000;
scrollbar-shadow-color: #000000;
scrollbar-3dlight-color: #000000;
scrollbar-arrow-color: #FFFFFF;
scrollbar-track-color: #000000;
scrollbar-darkshadow-color: #000000;
}
-->
</STYLE>
</head>
<body bgcolor="#000000" text="#cccccc" link="#cccccc" alink="#cccccc" vlink="#cccccc">
<font size="1" face="verdana">
<% if Session("admin") = "yes" then %>
<b>Logged In</b><br>
Control Room
<% else %>
<form name="form1" method="post" action="verify.asp">
Name<br><input type="text" name="username" size="15" style="background-color: #000000; color: #cccccc; scrollbar-face-color: #000000; scrollbar-highlight-color: #FF0000; scrollbar-shadow-color: #000000; scrollbar-3dlight-color: #000000; scrollbar-arrow-color: #FFFFFF; scrollbar-track-color: #000000; scrollbar-darkshadow-color: #000000;"><br>
Password<br><input type="password" name="password" size="15" style="background-color: #000000; color: #cccccc; scrollbar-face-color: #000000; scrollbar-highlight-color: #FF0000; scrollbar-shadow-color: #000000; scrollbar-3dlight-color: #000000; scrollbar-arrow-color: #FFFFFF; scrollbar-track-color: #000000; scrollbar-darkshadow-color: #000000;"><br>
<input type="submit" name="Submit" value="Log on" class="knapp" style="background-color: #000000; color: #cccccc; scrollbar-face-color: #000000; scrollbar-highlight-color: #FF0000; scrollbar-shadow-color: #000000; scrollbar-3dlight-color: #000000; scrollbar-arrow-color: #FFFFFF; scrollbar-track-color: #000000; scrollbar-darkshadow-color: #000000;">
</form>
<% end if %>
</font>
</body>
</html>
</code>
verify.asp
<code><!-- #include file="adovbs.inc"-->
<html>
<%
username = Request.Form("username")
password = Request.Form("password")
%>
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("db/admins.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM admins"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
do until recset.eof
if password = Recset("losen" and username = Recset("namn") then
Session("admin") = "yes"
Response.Redirect "loginsida.asp"
exit do
else
session("admin") = "no"
Response.Redirect "loginsida.asp"
end if
recset.movenext
loop
recset.close
connect.close
%></html>
</code>
Tacksam för hjälp :)
/AntonSv: Login Script
Hmm... Ett tips är att du försöker strukturera upp sidorna så att dom blir lättare att läsa. Särskilt html-koden :-)
Men jag hittade något här som kan vara lösningen på ditt problem.
Ändra
<code>
if password = Recset("losen" and username = Recset("namn") then
</code>
till
<code>
if password = Recset("losen") and username = Recset("namn") then
</code>
Ett annat sätt att göra detta på (som brukar vara det vanligaste) är att hämta bara det man vill från databasen.
T.ex.
SELECT * FROM admins WHERE namn = '" & username & "' AND losen = '" & password & "';"
Då kan du kolla giltigheten med följande sats:
<code>
IF Recset.EOF Then
'inloggningen misslyckades, ingen träff i DB
Else
'HURRA!
Response.write "Välkommen " & Recset("namn")
End if
</code>
Lycka till!
//freddaSv: Login Script
>>SELECT * FROM admins WHERE namn = '" & username & "' AND losen = '" & password & "';"
Har för mig att det inte är bra att skriva frågan med password direkt eftersom hackare då kan ange "OR username = xxx" i lösenordsfältet och då ta sig in i systemet
Rätta mig om jag har fel men har för mig att detta diskuterats här tidigare med bra lösning på hur man skall göra.
SELECT * FROM admins WHERE namn = '" & username & "' AND losen = '" & password & "';"
mvh RolandSv: Login Script
Visst är det så. Jag är mycket väl medveten om detta.
Det var kanske dumt att jag inte skrev det...
Antingen kan man använda SP:s eller skriva liknande:
SELECT * FROM admins WHERE namn = '" & Replace(username, "'", "''") & "' AND losen = '" & Replace(password, "'", "''") & "';"
Kolla denna länk för mer information om "SQL Injection"
http://www.tydal.nu/se/security/getText.phtml?issue009
//freddaSv: Login Script
MVH
/Anton *sidan jag jobbar med är förresten här: http://www.cs.swe.net/anton och "loginsida.asp" är den lilla iframen i nedre högra hörnet*Sv: Login Script
Det där med den glömda parentesen kanske jag aldrig hade upptäckt annars hehe.
Tack så mkt
MVH
/Anton