maniacMedlem sedan feb. 200150 inlägg 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 %>
------------------
kung fu fighter
@ndersMedlem sedan juni 200032 969 inlägg 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>
maniacMedlem sedan feb. 200150 inlägg den står bara och tuggar efter jag fyllt i formuläret :/
@ndersMedlem sedan juni 200032 969 inlägg hur ser hela din kod ut nu då?
du förstod att den koden jag skrev var en ersättning för hela idg-skräpet?
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>
maniacMedlem sedan feb. 200150 inlägg Jag fick höra att det inte var så bra att kolla en session direkt så jag tog bort den...
<html>
<%
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 "Wrong username or password"
else
session("username") = RecSet("strUser")
session("login") = "yes"
end if
RecSet.Close
Connect.Close
Response.Redirect "admin_default.asp"
%>
</html>
[Redigerat av maniac den 19 maj 2001]
jepsOMedlem sedan mars 2001484 inlägg 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 :(
------------------
/ jeps0
maniacMedlem sedan feb. 200150 inlägg jepso det var hans kod från början och den fungerade inte. kan du inte fixa till min så den är rätt ? :)
förresten var det Vide som sa det där om att det var dåligt att kolla sessions. han brukar ju ha rätt :)
crisse6Medlem sedan dec. 20002 526 inlägg 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
%>
------------------
www.groda.net *kvack*, *kvack*
jepsOMedlem sedan mars 2001484 inlägg 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.
------------------
/ jeps0
[Redigerat av jepsO den 19 maj 2001]
PatrikBMedlem sedan mars 20002 836 inlägg
Jag fick höra att det inte var så bra att kolla en session direkt så jag tog bort den...
Varför då sätta någon session överhuvudtaget om du inte ska "kolla" den/i den?
cya,
PatrikB
------------------
*Det tar sig sa han som hade eld i håret*
@ndersMedlem sedan juni 200032 969 inlägg
Om en annan site med ASP-inloggning använder en likadan cookie kan det innebära att man loggas in på din site med.
risken är obefintlig.
någon som kan förstå varför min kod ovan inte är funkis förresten?
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>
jepsOMedlem sedan mars 2001484 inlägg Nej, är så gott som identiskt med mina fullt fungerande inloggningsscript.
Skulle gissa att maniac kanske implementerad den fel i sin kod.
------------------
/ jeps0
maniacMedlem sedan feb. 200150 inlägg @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.
VideMedlem sedan dec. 19998 577 inlägg
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.nu SweQuake.com
[Redigerat av Vide den 20 maj 2001]
@ndersMedlem sedan juni 200032 969 inlägg vide, varför vill du göra en response.redirect innan du stänger objekten?
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>
jepsOMedlem sedan mars 2001484 inlägg Bra fråga :)
------------------
/ jeps0
VideMedlem sedan dec. 19998 577 inlägg Ä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.nu SweQuake.com
@ndersMedlem sedan juni 200032 969 inlägg ok, rätta mig om jag har fel... ;)
syftet med response.buffer = true måste väl ändå vara att ingenting skickas till brusaren innan sidan är helt processad.
inte tills varje kodrad är läst jag kan inte se hur servern kan komma till .close-raderna?
jag tolkar det som så att ingenting skickas till klienten innan servern är klar och har processat hela admin_default.asp.
jag tror vide har fel, men är inte helt säker.
därför ropar jag högt och ljudligt: emission!!! LarsG!!! hilfe!
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>
LarsGMedlem sedan dec. 200012 464 inlägg Jo, det stämmer väl (att response.redirect utförs omedelbums).
Det som behandlas särt är session.abandon som inte utförs förrän hela sidan har processerats.
------------------
essentitia preter non sans multiplicandum
PatrikBMedlem sedan mars 20002 836 inlägg Jepp, likaså utförs dessa direkt innan hela sidan processat klart:
Response.Flush
Response.End
finns säkert ngt mer :o
cya,
PatrikB
------------------
*Det tar sig sa han som hade eld i håret*