31. maj 2006 - 20:22Der er
35 kommentarer og 1 løsning
Session. Hvordan??
Ideen med følgende script er naturligvis at nå man ikke er logget ind er der et link til siden hvor man logger ind. Når man så er logget ind skal der være et link (Logout) til at logge ud. Hvordan gør jeg det??
<% If Not Session("UserID") <> "" THEN%> <a HREF="../ADMIN/index.asp" target="middle">login</a> <% Else %> ANER IKKE HVAD DER SKAL STÅ HER... <% End If %>
<% 'INDSÆTTES ØVERST PÅ DE SIDER, SOM SKAL HAVE ADGANGSKONTROL If Session("UserID") <> "1" Then Response.Redirect "../ADMIN/index.asp" End If %>
- Hvis sessionen 'UserID' ikke indeholder '1', viderestilles man til login-siden. Hvis sessionen 'UserID' _indeholder_ '1' viderestilles man ikke til login-siden, og kan derfor se indholdet af siden.
Ovenstående kode skal så placeres øverst på alle de sider, du vil have adgangskontrol på.
Det er ikke helt det jeg mener. På toppen af siden skal der være en knap der hedder Login. Når man trykker på det kommer man til siden hvor man logger ind. Har man gjort det korrekt skal login knappen ændre sig til en logud knap i stedet for.
<% ' HVIS SESSION = 1 If Session("UserID") = "1" Then Response.Write "<a href="../ADMIN/Logout.asp" target="middle">logout</a>" Else ' HVIS SESSION <> 1 Response.Write "<a href="../ADMIN/index.asp" target="middle">login</a>" End If %>
Ovenstående kode vil vise et logout-link når du er logget ind, og et login-link når du ikke er logget ind.
Ja. Men det du har skrevet virker ikke. Desuden skal der ikke henvises til en anden side ved Logout. Der skal jeg bruge en Session.abandon på en eller anden måde...
Min sidste kode viderestiller ikke til andre sider men viser et bestemt link alt efter om, Session("UserID") er '1' eller ej.
Du kan f.eks. lave en side kaldet 'logout.asp' med følgende indhold:
<% ' SLETTER INDHOLD AF SESSION("USERID") Session("UserID") = "" ' VIDERESTILLER TIL LOGIN-SIDEN Response.Redirect "="../ADMIN/index.asp" %>
Når du klikker på: <a href="../ADMIN/Logout.asp" target="middle">logout</a> vil du blive viderestillet til logout-siden, der sletter Session("UserID") og viderestiller til login-siden.
<% If Not Session("UserID") <> "" THEN %> <a HREF="../ADMIN/index.asp" target="middle"><i>login</i></a> <% Else %> <a HREF="midt.asp" target="middle"><i>logout</i></a> <% End If %>
Jeg har så bare lagt en Session.abandon på midt.asp siden og det virker fint. Problemet er bare at jeg er nør til at trykke på "opdater siden" for at få Login/Logout til at skifte. Hvordan klarer jeg så den??
<% If Session("UserID") <> "" THEN ' VISER LOGIN-LINK HVIS USERID = "" Response.Write "<a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Logout=Yes"" target=""middle""><i>logout</i></a>" Else ' VISER LOGOUT-LINK HVIS USERID <> "" Response.Write "<a href=""" & Request.ServerVariables("SCRIPT_NAME") & """ target=""middle""><i>login</i></a>" End If
If Request.QueryString("Logout") = "Yes" Then ' SLETTER ALLE SESSIONS Session("UserID") = "" ' VIDERESTILLER TIL DEN AKTUELLE SIDE Response.Redirect Request.ServerVariables("SCRIPT_NAME") End If %>
Jeg fik rodet lidt rundt (det er svært når jeg skal teste det i et lukket miljø uden, at kunne logge rigtigt ind :-/). Denne burde virke:
<% If Session("UserID") <> "" THEN ' VISER LOGOUT-LINK Response.Write "<a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Logout=Yes" target=""middle""><i>logout</i></a>" Else ' VISER LOGIN-LINK Response.Write "<a href=""../ADMIN/index.asp"" target=""middle""><i>login</i></a>" End If
' LOGGER UD, OG OPDATERER SIDEN If Request.QueryString("Logout") = "Yes" Then ' SLETTER SESSION("USERID") Session("UserID") = "" ' OPDATERER DEN AKTUELLE SIDE Response.Redirect Request.ServerVariables("SCRIPT_NAME") End If %>
<% If Session("UserID") <> "" THEN ' VISER LOGOUT-LINK Response.Write "<a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Logout=Yes"" target=""middle""><i>logout</i></a>" Else ' VISER LOGIN-LINK Response.Write "<a href=""../ADMIN/index.asp"" target=""middle""><i>login</i></a>" End If
' LOGGER UD, OG OPDATERER SIDEN If Request.QueryString("Logout") = "Yes" Then ' SLETTER SESSION("USERID") Session("UserID") = "" ' OPDATERER DEN AKTUELLE SIDE Response.Redirect Request.ServerVariables("SCRIPT_NAME") End If %>
<% If Session("UserID") <> "" THEN ' VISER LOGOUT-LINK Response.Write "<a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Logout=Yes"" target=""middle""><i>logout</i></a>" Else ' VISER LOGIN-LINK Response.Write "<a href=""../ADMIN/index.asp"" target=""middle""><i>login</i></a>" End If
' LOGGER UD, OG OPDATERER SIDEN If Request.QueryString("Logout") = "Yes" Then ' SLETTER SESSION("USERID") Session("UserID") = "" ' OPDATERER DEN AKTUELLE SIDE Response.Redirect Request.ServerVariables("SCRIPT_NAME") End If %>
Frames er heller ikke det bedste at bruge, hvis du spørger mig. Generelt holder jeg mig langt væk fra alle former for frames da det ofte bliver for bøvlet at arbejde med.
Koden virker fint hos mig (uden at skulle opdatere vinduet) - men jeg bruger ikke frames.
Hmm... Jeg ved ikke lige hvordan jeg skal hjælpe dig videre da jeg ikke har nogen forslag til hvordan du kan få det til at virke med frames. Desværre :-/
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.