Sessions i ASP

Tags:    asp
Skrevet af Bruger #4899 @ 16.04.2002
Sessions - De grundlæggende ting

Sessions kan bruges til at lave sikkerhed, login og andet.
En session indeholder data, dog kun midlertidigt indtil den slutter.
Her vil jeg lige gennemgå de mest grundlæggende ting:
F.eks. vil dette demonstrere hvordan man laver et login system
Først starter vi med default.asp som indeholder formen:
<form action="login.asp" method="post">
<input type="text" name="navn">
<input type="submit" value="ok">
</form>

Så tager vi login.asp hvor vi starter session
Først siger vi at HVIS man har tastet 123 i formen så logger man ind
<% 
if request.form("navn") = "123" then  
Session("login") = "fino" // her starter vi så session'en login der indeholder "fino"
Response.redirect("inde.asp") // så smutter vi videre til inde.asp
else
Response.Write("Forkert input i formen") // hvis man skriver forkert i formen
end if
%>

Ok, nu er vi så logget ind, og kommet ind på inde.asp, nu skal vi så tjekke om man er logget ind, så man ikke kan snyde over - dette kan gøres på forskellige måder:
Eksempel 1:
<% if NOT session("login") = "fino" then response.redirect("default.asp")%>

Eksempel 2:
<% if session("login") <> "fino" then response.redirect("default.asp")%>

Eksempel 3:
<% if session("login") = "" then response.redirect("default.asp")%>
Dette skal så ligge i toppen af dit ASP dokument på alle de sider der skal beskyttes.
En session kan altid afsluttes med kommandoen:
Session.Abandon
Ønsker ud at udskrive en sessions indhold kan det gøres sådan:
<% Response.Write session("login") %> 
eller
<%=Session("login")%>
En session som står skrevet i toppen, varer selvfølgeligt ikke evigt, og slutter også når en bruger lukker vinduet ned. 20 minutter er en sessions standard varighed, hvis du bare lader vinduet stå åbent, og ikke laver noget aktivitet på siden. Dette kan også ændres ved
Session.Tmeout = 10 // her sætter vi den til at afslutte efter 10 minutter
Lad os prøve at ændre afslutnings tiden på vores login script.
<% 
if request.form("navn") = "123" then  
Session("login") = "fino" // her starter vi så session'en login der indeholder "fino"
Session.Timeout = 30 // Her ændrer vi afslutningstiden til 30 minutter
Response.redirect("inde.asp") // så smutter vi videre til inde.asp
else
Response.Write("Forkert input i formen") // hvis man skriver forkert i formen
end if
%>
Håber i kan bruge denne artikel til noget :) Msg mig hvis der er noget



Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (4)

User
Bruger #3710 @ 02.04.04 18:41
Du skal have Kredits for din gode forstålige artikel.. Jeg kan godt li' at du skriver en kort konkret artikel.. Hvis det skulle være noget negativt, ville det være at du hentede navnet fra en database, men så havde du nok heller ikke holdt den stil som du gjorte.. KANON ARTIKEL !!
User
Bruger #4899 @ 03.05.04 14:29
Jeg siger tak for kommentaren ;)
(det var mig der tilføjede artiklen, men af en eller anden grund blev min gamle bruger slettet)
User
Bruger #5956 @ 12.06.04 13:58
Nice artikel! Forståelig og brugelige :) Den er jo næsten et helt login system i sig selv :)
User
Bruger #7812 @ 01.07.05 11:12
nice artikel - hurtig, kort, og forståelig.

Men kunne nu godt tænke mig hvordan man brugte sessions i forbindelse med database.
Du skal være logget ind for at skrive en kommentar.
t