Avatar billede morten_soegaard Nybegynder
11. november 2004 - 16:14 Der er 15 kommentarer og
2 løsninger

Ændring i login-script

Hej

Jeg har lige lidt spørgsmål til hvordan jeg ændre mit script så det virker 100 % som det skal.

Jeg bruger session objektet i ASP, og jeg vil gerne have sådan at der bliver en timeout tid på 8 timer?

Hvis man lukker browseren ned og åbner den op til login siden og kan se at et session er åbnet skal den på videre til en anden side?

Hvordan laver man et log-out script, så man lukker sessionet?


Koden ser sådan her ud:


<%
Set my_conn = Server.CreateObject("ADODB.Connection")
my_conn.Open "Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=; UID=; PWD=;"

If Request("Submit")<>"" Then
  strSQL = "SELECT * FROM bud_login where brugernavn='"& replace(Request("brugernavn2"),"'","''") &"' and password='"& replace(Request("password2"),"'","''") &"'"
  Set rs = my_conn.Execute(strSQL)
    If not rs.eof Then
        Session("Valid") = Request("brugernavn2")
        Response.redirect "login.asp"
    Else       
        fejl = "Forkert brugernavn eller password. Prøv igen!"   
    End If
End If
%>


Den stump kode som ligger øverst i de dokumenter som ikke må åbnet ser således ud:

<%
   
If Session("Valid") = "" Then
  Response.redirect "/test/"
End If
%>



HÅBER I KAN HJÆLPE...

Mvh Morten
Avatar billede rasmus_h Nybegynder
11. november 2004 - 16:26 #1
Timeout kan laves med Session.Timeout

Din kode kan laves sådan her:
<%
Set my_conn = Server.CreateObject("ADODB.Connection")
my_conn.Open "Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=; UID=; PWD=;"

If Request("Submit")<>"" Then
  strSQL = "SELECT * FROM bud_login where brugernavn='"& replace(Request("brugernavn2"),"'","''") &"' and password='"& replace(Request("password2"),"'","''") &"'"
  Set rs = my_conn.Execute(strSQL)
    If not rs.eof Then
        Session.Timeout 480
        Session("Valid") = Request("brugernavn2")
        Response.redirect "login.asp"
    Else       
        fejl = "Forkert brugernavn eller password. Prøv igen!"   
    End If
End If
%>

- Rasmus!
Avatar billede morten_soegaard Nybegynder
11. november 2004 - 16:27 #2
480 hvor lang tid er det?
Avatar billede rasmus_h Nybegynder
11. november 2004 - 16:28 #3
Og hvis du skal ha en logud funktion, kan du lave en fil du kalder logud.asp indeholdende følgende:

<%
Session.Abandon
Response.redirect("SIDE")
%>

SIDE udskiftes med den fil som du vil ha brugeren skal sendes videre til efter de har logget ud...

- Rasmus!
Avatar billede rasmus_h Nybegynder
11. november 2004 - 16:29 #4
480 er 8 timer. Session.Timeout skal angives i minutter, så det er bare 8*60

- Rasmus
Avatar billede morten_soegaard Nybegynder
11. november 2004 - 16:31 #5
Ved du hvordan jeg laver det med så den selv finder den side der hvis man er lukket ind og har lukket browseren?
Avatar billede rasmus_h Nybegynder
11. november 2004 - 16:32 #6
Jeg er ikke helt med hvad du mener... Altså hvis man er logget ind men så lukker vinduet, så skal den finde en side?
Avatar billede morten_soegaard Nybegynder
11. november 2004 - 16:36 #7
Det her login-script starter på en side der hedder default (her logger man ind)og sender en videre til login.asp. Det jeg så mener er hvis man har lukket vinduet med login.asp og åbner default.asp, vil jeg have den til at se at man er lukket på et session og derfor sender den videre til login.asp... Sådan at man ik skal skrive login'et igen. Var det bedre?
Avatar billede rasmus_h Nybegynder
11. november 2004 - 16:38 #8
Altså at man logger ind og får adgang til de beskyttede sider, men at man stadig skal kunne hoppe frem og tilbage mellem det beskyttede og offentlige side uden at skulle logge ind hele tiden?
Avatar billede morten_soegaard Nybegynder
11. november 2004 - 16:41 #9
På det system jeg laver det til er der ik nogle ubeskyttet sider. Kun nogle få beskyttet sider. For sådan jeg har forstået session er at selvom man har lukket vinduet tilhører man vel stadig sessionet? eller måske ik?
Avatar billede morten_soegaard Nybegynder
11. november 2004 - 16:41 #10
Har lige testet... Og det har man ik. Så kan det ik lade sig gøre.
Avatar billede rasmus_h Nybegynder
11. november 2004 - 16:42 #11
Hvis du lukker vinduet ryger sessionen også...
Avatar billede morten_soegaard Nybegynder
11. november 2004 - 16:44 #12
Okay, så virker det som det skal nu. Eller hvis man ku lave sådan at når man havde været ude på en anden side i samme browseren og gik tilbage til default.asp (login-siden) at den så sendte en videre til login.asp? Kan det lade sig gøre?
Avatar billede rasmus_h Nybegynder
11. november 2004 - 16:47 #13
På din default.asp kan du lave følgende:

<%
If Session("Valid") <> "" Then
  Response.redirect "login.asp"
End If
%>
Avatar billede rasmus_h Nybegynder
11. november 2004 - 16:47 #14
Rettelse:

<%
If Session("Valid") <> "" Then
  Response.redirect("login.asp")
End If
%>
Avatar billede morten_soegaard Nybegynder
11. november 2004 - 16:50 #15
Det virker skam os! Fantastisk...

Du får mange tak for hjælpen.
Avatar billede rasmus_h Nybegynder
11. november 2004 - 17:08 #16
Hehe, så var jeg heldig igen ;)

- Rasmus!
Avatar billede mkiii Nybegynder
11. november 2004 - 19:08 #17
ellers skulle du måske overveje at lave det med cookies istedet
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