hur ska denna kod se ut för att man inte ska kunna använda tex. användare nr1s användarnamn och användare nr2s lösenord?
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "databas"
Set RecSet = Server.CreateObject("ADODB.Recordset") %>
<% '====================================================================================================================== %>
<% ' Kontrollera användarnamn, lösenord och behörighet %>
<% '====================================================================================================================== %>
<% Visa = "SELECT * FROM tbMembers"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
X = FALSE
Do Until X = TRUE OR RecSet.EOF
If RecSet("strUser") = Request.Form("Username") 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("strPass") = Request.Form("password") Then
Y = TRUE
Exit Do
End If
RecSet.MoveNext
Loop
End If
If X = FALSE Then
Response.Write "Wrong username!"
ElseIf Y = FALSE Then
Response.Write "Wrong password!"
End If
If X = TRUE AND Y = TRUE Then %>
<% session("username") = RecSet("strUser") %>
<% session("login") = "yes" %>
<% If session("login") = "yes" then %>
<% Response.Redirect "admin_default.asp" %>
<% End If %>
<% Else %>
<% End If
RecSet.Close
Connect.Close %>
jag hatar idg. idgs inloggningsscript är sämst i hela världen.
skit, skit, skit, skit. avföring, exkrement.
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "databas"
Visa = "SELECT * FROM tbMembers where strUser = '" & request.form("username") & "' and strPass = '" & request.form("password") & "'"
set RecSet = Connect.execute(visa)
if RecSet.eof then
response.write "Du har angett fel användarnamn eller lösenord!"
else
session("username") = RecSet("strUser")
session("login") = "yes"
end if
RecSet.Close
Connect.Close
if session("login") = "yes" then Response.Redirect "admin_default.asp"
%>
kortare, smartare, säkrare och framför allt inte fel.
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>
I din kod skickas du vidare till admin_default.asp även om du skrivit in fel användarnamn/lösenord. Att det skulle vara dumt att kolla en session direkt låter bara befängt. Kör med @nders kod.
Sorgligt att så många börjar med IDG:s guide (inklusive jag själv) - man upptäcker sedan hur idiotiskt kodat det mesta är hos dem :(
jag hade också idg´s skript, men som sagt det är värdelöst... skriver du in ett username (ditt te x) om du skriver in någon annans lösen = du kommer in x(
skit!
jag tog brw´s skript och fick hjälp av asp-kungarna här på wf... PatrikB oså...
kolla:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open ("driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("users.mdb"))
Visa = "SELECT * FROM users WHERE Username='" & Request.Form("Username") & "' AND Password='" & Request.Form("Password") & "'"
Set RecSet = Connect.Execute(Visa)
If RecSet.EOF Then
Response.Redirect("om man skriver fel.asp")
Else
Session("Username") = RecSet("Username")
Session("Password") = RecSet("Password")
Session("id") = RecSet("id")
'##### ditt usernam = om den känner av att du te x med ett visst username så kommer du till adminsidan!
If Session("username") <> "ditt username" Then
Response.Redirect("sidan där medlemmar kommer till.asp")
Else
'######## Sidan för adminen, för ändringar mm #######
Response.Redirect "adminsidan.asp"
End If
End If
'## -- clean up --
RecSet.Close
Set RecSet = nothing
Connect.Close
Set Connect = nothing
%>
sedan en include, inte på den sidan som har koden ovan! (då tuggar den)
denna include koden:
<%
If Session("username") = "" Then
Response.Redirect "test.asp"
ElseIf Session("password") = "" Then
Response.Redirect "test.asp"
End If
%>
och sedan en annan include som ligger på adminsidan för att försäkra sig om någon inte adminare försöker ta sig in har du denn kod i includen, men bara på dom sidor som är admin!
<%
Session.Timeout = 10
If Session("username") <> "ditt valda username" Then
Response.Redirect("start.asp")
End If
%>
Kom iofs på vad Vide kan ha menat. Om en annan site med ASP-inloggning använder en likadan cookie kan det innebära att man loggas in på din site med.
Såhär:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "databas"
Visa = "SELECT * FROM tbMembers where strUser = '" & request.form("username") & "' and strPass = '" & request.form("password") & "'"
set RecSet = Connect.execute(visa)
if RecSet.eof then
response.write "Du har angett fel användarnamn eller lösenord!"
else
session("username") = RecSet("strUser")
session("login") = "yes"
login="yes"
end if
RecSet.Close
Connect.Close
if login = "yes" then Response.Redirect "admin_default.asp"
%>
Enda skillnaden är att du använder en vanlig variabel istället för en session.
@nders...jag tror inte det var din kod det var fel på :)
när jag ändrade på sidan man skickades till så funkade jeps0s script..så det var nog det som var problemet.
Kom iofs på vad Vide kan ha menat. Om en annan site med ASP-inloggning använder en likadan cookie kan det innebära att man loggas in på din site med.
Detta gäller endast om den andra sajten ligger på samma webbplats (inte webbserver).
Jag skulle nog använt @nders kod, men ändrat på en liten detalj (inte kritisk):
<%
Response.buffer = true
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "databas"
Visa = "SELECT * FROM tbMembers where strUser = '" & request.form("username") & "' and strPass = '" & request.form("password") & "'"
set RecSet = Connect.execute(visa)
if RecSet.eof then
response.write "Du har angett fel användarnamn eller lösenord!"
else
session("username") = RecSet("strUser")
session("login") = "yes"
Response.Redirect "admin_default.asp"
end if
RecSet.Close
Connect.Close
%>
Tror knappast det gör skillnad dock... :l
------------------ Budweiser - Slightly contaminated water... probably harmless, but I would recommend boiling before you drink it... webEye.nuSweQuake.com
Är det inte så att hela sidan precesseras klart innan all response tillförs om man kör buffer = true?
Rätta mig om jag har fel, då vill jag gärna veta ;)
------------------ Budweiser - Slightly contaminated water... probably harmless, but I would recommend boiling before you drink it... webEye.nuSweQuake.com