Avatar billede nof Nybegynder
27. juni 2002 - 23:36 Der er 13 kommentarer og
1 løsning

Login-system der driller

Hej,

jeg sidder og roder med et login system, men jeg kan ikke få det til at fungere rigtigt. Det er downloadet på nettet og jeg har ikke ændret i koden - originalen virker fint, derfor kan jeg ikke forstå det.

Denne bid kode står på den side, hvorfra man logger ind:
<%
SET RS = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("usersystem.mdb")

If Request("mode") = "Check" then

    ' Authes user, password, and fixed a known securitybug to many login systems.
        strUsername = Trim(Replace(request("username"),"'","''" ))
        strPassword = Trim(Replace(request("password"),"'","''" ))

  Sql = "Select Count(*) as Found from users where (username = '" & strUsername  & "') and (password ='" & strPassword  & "')"
  Set LO = RS.Execute(Sql)
  if LO("Found") = 0 then
    Session("login") = ""
    error = "You´re not authed be the system"
  else
  strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("usersystem.mdb")
  Set myConn = Server.CreateObject("ADODB.Connection")
  myConn.Open strDSN
  strSQL = "SELECT * FROM users where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')"
  Set ez = myConn.Execute(strSQL)
    Session("login") = "Authed"
    Response.Redirect "default.asp"
    EZ.Close
    RS.Close
    Conn.Close
  End if
End if
%>

...og denne kode står øverst på de sider, som er beskyttede:
<%
if session("login") = "" Then
Response.redirect("login.asp")
end if
%>

Systemet laver den fejl at det går til login siden, når der er trykket login istedet for at gå til default.asp.

Prøv det evt. på www.median.dk/clara-kristian
Både brugernavn og password er test.

/nof
Avatar billede tmceu Praktikant
27. juni 2002 - 23:43 #1
Uden at jeg har gennemgået hele scriptet, kunne det lyde som om at browseren ikke understøtter cookies. Uden cookies vil alle sessions variabler gå tabt, hvorfor den vil smide dig på login siden altid.
Avatar billede nof Nybegynder
27. juni 2002 - 23:47 #2
virker det som de skal på din computer? Jeg er meget sikker på at cookies er aktiveret, da jeg på diverse websteder har valgt at logge ind automatisk.
Avatar billede nof Nybegynder
27. juni 2002 - 23:49 #3
de = det
Avatar billede frosig Nybegynder
27. juni 2002 - 23:50 #4
Er din default.asp også beskyttet? Det kan være at den aldrig kommer ind i den første if-sætning (If Request("mode") = "Check" then), hvis mode ikke er sat. Det kommer til at betyde, at login (session) aldrig bliver sat...
Avatar billede frosig Nybegynder
27. juni 2002 - 23:51 #5
...hvis mode ikke er sat til check
Avatar billede puppetmaster Nybegynder
27. juni 2002 - 23:58 #6
Hmmmm...og der ER oprettet en bruger i databasen, som hedder test med passwordet test?
Avatar billede nof Nybegynder
28. juni 2002 - 00:17 #7
Brugeren eksisterer i databasen.

Frosig -> hvordan tilføjer jeg det du foreslår?

Jeg vender tilbage igen i morgen - GODNAT!
Avatar billede frosig Nybegynder
28. juni 2002 - 01:19 #8
Nu ved jeg jo ikke, hvordan resten er bygget op, men der skal være en variabel, der hedder mode, som er sat til Check. Jeg gætter på, at du skal have noget der minder om <input type=hidden name=mode value="Check"> eller sådan noget...

Er koden, hvor man indtaster sit brugernavn og password, på samme asp-side, som ovenstående kode? Hvis den ikke er, så kan jeg ikke se nogen grund til, at if-sætningen er der...
Avatar billede nof Nybegynder
28. juni 2002 - 11:58 #9
Koden er i en database.
Avatar billede eagleeye Praktikant
28. juni 2002 - 17:39 #10
Har du i koden en linie:

On Error Resume next ???
Avatar billede nof Nybegynder
30. juni 2002 - 23:09 #11
eagleeye -> det kan du jo se i ovenstående kode...
Avatar billede eagleeye Praktikant
01. juli 2002 - 09:16 #12
Nej jeg kan ikke!!! ville det være så svært at svare Ja eller Nej på et spørgsmål, du kan blive en god politiker du har svaret på spørgsmålet uden at vi er kommet et hak vidre... Prøv evt. selv at læses dit spørgsmål igen så kan du måske selv regne ud hvorfor jeg spørger, hvis ikke så det også helt fint.
Avatar billede nof Nybegynder
01. juli 2002 - 12:18 #13
Al kode står i login.asp + de par linjer på de beskyttede sider. Default.asp har også koden: <%
if session("login") = "" Then
Response.redirect("login.asp")
end if
%> ... ellers sender den jo ikke én videre til login.asp

Eagleeye -> der er kun det kode som står oppe i mit spørgsmål, defor kan du jo se der om On Error Resume Next er inkluderet.
Avatar billede eagleeye Praktikant
04. juli 2002 - 20:10 #14
Såd vidt jeg kan se hedder din input box for brugernavn : login
Og ikke username som det fremgår af denne linie:
strUsername = Trim(Replace(request("username"),"'","''" ))

Den skal rettes til:
strUsername = Trim(Replace(request("login"),"'","''" ))


Jeg kan heller ikke se du overføre Mode="Check" hverken via QueryString eller vi et Hidden input felt så fjel den If sætning:
If Request("mode") = "Check" then
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