Avatar billede bms Nybegynder
02. april 2001 - 15:37 Der er 18 kommentarer og
1 løsning

login (for resten af mine point!) please help!

Jeg har lavet en login-side til mit admin-modul. Det virker faktisk - men kun med det første recordset i databasen. Tilføjer jeg et (fx : Username=test, Passwrod=test) virker det ikke. Det er et eller andet - \"do until rs.eof\" jeg ikke kan få grejet - er der en ekspert da lige kan gennemskue det? I må meget gerne indsætte den ekstra stykke kode i den jeg allerede har lavet (nederst).

Nedenstående er den side der tjekker de input man indtastet i login-formularen:

<%
Username = request.form(\"Username\")
Password = request.form(\"Password\")
%>
<% \'-- Connection to DB
Set RS = server.CreateObject(\"ADODB.connection\")
RS.open ConnString
SQL = \"SELECT * FROM Users\"
Set RS = RS.Execute(SQL)

if (RS(\"Username\")) = (request.form(\"Username\")) and (RS(\"Password\")) = (request.form(\"Password\")) then
session(\"Login\") = true
session (\"Email\") = RS(\"Email\")
session(\"Username\") = RS(\"Username\")
response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=loggedin.asp\"\">\")

else
session(\"Login\") = \"\"
response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=default.asp\"\">\")
end if
%>
Avatar billede slash Nybegynder
02. april 2001 - 15:42 #1
mit opkast... er ikke testet!
<% \'-- Connection to DB
Set RS = server.CreateObject(\"ADODB.connection\")
RS.open ConnString
SQL = \"SELECT username, password FROM Users where username = \'\"&request.form(\"username\")&\"\' and password = \'\"&request.form(\"password\")&\"\' \"

set res = rs.Execute(SQL)
n = res.eof
if n >= 0 then
    a = res.getrows()
    for row = 0 to ubound(a,2)
        session(\"Login\") = true
        sessiom(\"Email\") = a(0,row)
        session(\"Username\") a(1,row)
        next

else
  response.write \"fejl\"
end if
Avatar billede bms Nybegynder
02. april 2001 - 15:46 #2
Er det ikke noget med at man kan logge ind ved selvom man ikke kender brugernavn og password med den måde du har kodet det der?

Ved at skrive følgende i username feltet:
\' or username like \'%

Og skrive følgende i password feltet:
\' or password like \'%
Avatar billede slash Nybegynder
02. april 2001 - 15:48 #3
måske - test det!

Og hvis du vil være helt på den sikre side, så kan du jo bare tjekke din inputstrenge for f.eks. %, *, \', [] og andre wildcards/reservede ord!

replace og instr kan med fordel bruges!
Avatar billede bms Nybegynder
02. april 2001 - 15:52 #4
aha - men \"problemet\" er jo bare - at min egen faktisk virker ok - jeg ved bare ikke lige hvordan den skal tjekke næste recordset - \"do until rs.eof\". Kan ikke finde ud af at angive det rigtigt!
Avatar billede bms Nybegynder
02. april 2001 - 15:52 #5
aha - men \"problemet\" er jo bare - at min egen faktisk virker ok - jeg ved bare ikke lige hvordan den skal tjekke næste recordset - \"do until rs.eof\". Kan ikke finde ud af at angive det rigtigt!
Avatar billede slash Nybegynder
02. april 2001 - 15:54 #6

do until rs.eof
....
.....
loop
Avatar billede bms Nybegynder
02. april 2001 - 18:39 #7
hvordan gør man det? Hvis man evt vil tjekke felterne Brugernavn og Password for
(%, *, \', []) - hvordan angiver man så det med replace og instr?

sådan at hvis felterne indeholder et el. flere af disse tegn er login=false og surferen smides til forsiden?
Avatar billede slash Nybegynder
02. april 2001 - 19:22 #8
Her er lidt at begynde på, så kan du selv brygge videre!
<%
Username = request.form(\"Username\")
Password = request.form(\"Password\")
%>
<%
\'hvis % er i username variablen udskift med h!
replace(username,\"%\",\"h\")

\'hvis du vil gøre mongoler opmærksom på at de ikke kan logge ind med wildcards o.lign. kan du bruge følgende:
if instr(username,\"%\") then
    response.redirect \"login.asp?mode=wild\"
else
    ....log dem ind
end if

\'*********login.asp*********
if request.querystring(\"mode\") = \"wild\" then
  strMessage = \"Du anvender forkerte tegn\"
end if

if not isempty(strmessage) then
    response.write strmessage
else
.....resten af dit indhold på siden
end if
%>
Avatar billede bms Nybegynder
02. april 2001 - 19:32 #9
Er der et el. andet galt? - Får flg. fejlmeddelelse:

Cannot use parens when calling a Sub
login.asp, line 11
replace(Username,\"%\",\"h\")
-------------------------^

koden:
<%
User = request.form(\"Username\")
Pass = request.form(\"Password\")
replace(Username,\"%\",\"h\")
replace(Username,\"*\",\"h\")
replace(Username,\"\'\",\"h\")
replace(Username,\"[\",\"h\")
replace(Username,\"]\",\"h\")
replace(Password,\"%\",\"z\")
replace(Password,\"*\",\"z\")
replace(Password,\"\'\",\"z\")
replace(Password,\"[\",\"z\")
replace(Password,\"]\",\"z\")
%>
Avatar billede slash Nybegynder
02. april 2001 - 19:39 #10
jeps...  glemte lige at du skal assigne den replacede streng til en ny var! Men gør således, så sparer du lidt kode!

listeResWords = (\"%,*,?,&,¤,½,@,(,),{,},[,]$,£,§,1,2,3,4,5,6,7,8,9,0\")
arrResWords = split(listeResWords,\",\")
username = request.form(\"username\")
for i = 0 to ubound(arrResWords)
  if instr(username,arrResWords(i)) then
    Response.Redirect \"login.asp?mode=wild\"
  else
  ...log folk ind.,.....   
end if
next

Avatar billede bms Nybegynder
03. april 2001 - 11:35 #11
Enten er det mig der er en kegle eller også har jeg stirret mig blind på lortet - hvorom altin er -virker skidtet ikke! kan du se hvad/om der mangler noget?!

<%
listeResWords = (\"%,*,?,&,¤,½,@,(,),{,},[,]$,£,§,1,2,3,4,5,6,7,8,9,0\")
arrResWords = split(listeResWords,\",\")
Username = request.form(\"Username\")
for i = 0 to ubound(arrResWords)
%>

<%Set RS = server.CreateObject(\"ADODB.connection\")
RS.open ConnString
SQL = \"SELECT * FROM Users where Username = \'\" & Username & \"\' and Password = \'\" & Password & \"\'\"
Set RS = RS.Execute(SQL)
do while not RS.eof

if instr(Username,arrResWords(i)) then
Response.Redirect \"default.asp\"

else
session(\"Login\") = true
session (\"Email\") = RS(\"Email\")
session(\"Username\") = RS(\"Username\")
response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=admin.asp\"\">\")

end if

RS.MoveNext
Loop
RS.Close
Set RS = Nothing
%>
Avatar billede slash Nybegynder
03. april 2001 - 11:37 #12
hvilken fejl får du?
Avatar billede bms Nybegynder
03. april 2001 - 11:46 #13
Microsoft VBScript compilation error \'800a03fc\'

Expected \'Next\'

/test/check.asp, line 35
Avatar billede slash Nybegynder
03. april 2001 - 11:52 #14
prøv dette!

<%
listeResWords = (\"%,*,?,&,¤,½,@,(,),{,},[,]$,£,§,1,2,3,4,5,6,7,8,9,0\")
arrResWords = split(listeResWords,\",\")
Username = request.form(\"Username\")
for i = 0 to ubound(arrResWords)
if instr(Username,arrResWords(i)) then
  Response.Redirect \"default.asp\"
else
  Username = Username
end if
%>

<%Set RS = server.CreateObject(\"ADODB.connection\")
RS.open ConnString
SQL = \"SELECT * FROM Users where Username = \'\" & Username & \"\' and Password = \'\" & Password & \"\'\"
Set RS = RS.Execute(SQL)
do while not RS.eof

session(\"Login\") = true
session (\"Email\") = RS(\"Email\")
session(\"Username\") = RS(\"Username\")
response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=admin.asp\"\">\")

end if

RS.MoveNext
Loop
RS.Close
Set RS = Nothing
%>
Avatar billede bms Nybegynder
03. april 2001 - 12:00 #15
no dice - virker ikke! fatter nada lige nu!

Expected \'Next\'

/test/check.asp, line 33
Avatar billede slash Nybegynder
03. april 2001 - 12:08 #16
*hydr* havde sgu glemt next i forløkken... skulle være rettet i nendestående
<%
listeResWords = (\"%,*,?,&,¤,½,@,(,),{,},[,]$,£,§,1,2,3,4,5,6,7,8,9,0\")
arrResWords = split(listeResWords,\",\")
Username = request.form(\"Username\")
for i = 0 to ubound(arrResWords)
if instr(Username,arrResWords(i)) then
  Response.Redirect \"default.asp\"
else
  Username = Username
end if
next
%>

<%Set RS = server.CreateObject(\"ADODB.connection\")
RS.open ConnString
SQL = \"SELECT * FROM Users where Username = \'\" & Username & \"\' and Password = \'\" & Password & \"\'\"
Set RS = RS.Execute(SQL)
do while not RS.eof

session(\"Login\") = true
session (\"Email\") = RS(\"Email\")
session(\"Username\") = RS(\"Username\")
response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=admin.asp\"\">\")

end if

RS.MoveNext
Loop
RS.Close
Set RS = Nothing
%>
Avatar billede bms Nybegynder
03. april 2001 - 12:16 #17
nope - stadig no go:

Expected statement

/test/check.asp, line 33
end if
^
Avatar billede slash Nybegynder
03. april 2001 - 12:18 #18
her:
<%
listeResWords = (\"%,*,?,&,¤,½,@,(,),{,},[,]$,£,§,1,2,3,4,5,6,7,8,9,0\")
arrResWords = split(listeResWords,\",\")
Username = request.form(\"Username\")
for i = 0 to ubound(arrResWords)
if instr(Username,arrResWords(i)) then
  Response.Redirect \"default.asp\"
else
  Username = Username
end if
next
%>

<%Set RS = server.CreateObject(\"ADODB.connection\")
RS.open ConnString
SQL = \"SELECT * FROM Users where Username = \'\" & Username & \"\' and Password = \'\" & Password & \"\'\"
Set RS = RS.Execute(SQL)
do while not RS.eof

session(\"Login\") = true
session (\"Email\") = RS(\"Email\")
session(\"Username\") = RS(\"Username\")
response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=admin.asp\"\">\")

RS.MoveNext
Loop
RS.Close
Set RS = Nothing
%>
Avatar billede bms Nybegynder
03. april 2001 - 12:31 #19
Næsten - men jeg tager den herfra! Det skal nok virke! Tak for hælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester