Källkoden för /anders.enges/asp/vari.asp

<!--#include file="../inc/navstuff.asp" -->
Variabler i ASP kod kan ha lite olika "räckvidd".<p>
De kan vara<ol>
<li><a href="#LOK">Lokala</a>
<li><a href="#SID">Sidlokala</a>
<li><a href="#SESS">Sessionsvariabler</a>
<li><a href="#APP">Applikationsvariabler</a>
<li><a href="#CO">Cookies</a>
</ol>
<a href="#BOTTOM">Läs gärna "the bottom line" först.</a>
<p><ol>
<li><a name="LOK">Lokala</a> variabler är variabler som finns i en procedur eller funktion<p>
<div class=code>
<span class=asp>
<%<br>
Sub aProcedure()<br>
    Dim aLocalVariable ' variabeln skapas<br>
    ' Ett antal programsatser<br>
End Sub<br>
' Här vinns inte längre aLocalVariable<br>
%></span></div>
<p>
<li><a name="LOK">Sidlokala</a> variabler är variabler som deklareras på en sida<p>
<div class=code>
<span class=asp>
<%<br>
Dim aMoreLocalVariable ' kan bortlämnas om inte Option Explicit är satt<br>
aMoreLocalVariable = 1234<br>
' variabeln finns tillgänglig på resten av sidan<br>
' men INTE på andra sidor<br>
%></span></div>
<p>
<li><a name="SESS">Sessionsvariabler</a> finns tillgängliga för hela sessionen
tills man går bort från applikationen eller det sker en TimeOut (20 minuter är default)<p>
sid1.asp<br>
<div class=code>
<span class=asp>
<%<br>
Session("aSessionVariable") = 1233<br>
%></span></div><p>
Följande kommer att fungera om vi har varit på sid1 inom 20 minuter tidigare<p>
sid2.asp<br>
<div class=code>
<span class=asp>
<%<br>
If Session("aSessionVariable") > 0 Then<br>
' do something important<br>
End If<br>
%></span></div>
<p>
Man kan tömma hela sessionen med<br>
<span class=asp> Session.Abandon </span><p>
Man kan ändra på TimeOut med <br>
<span class=asp> Session.Timeout = 30 </span><p>

<li><a name="APP">Applikationsvariabler gäller för hela applikationen.
Detta betyder att de är globala för ALLA ANVÄNDARE på ALLA SIDOR<p>
För att skriva till en applikationvariabel måste den låsas eftersom det kan hända
att flera användare samtidigt försöker skriva till samma variabel<br>
<div class=code>
<span class=asp>
<%<br>
Application.Lock<br>
    Application("aGoodName") = "TEST"<br>
Application.Unlock<br>
%></span></div>
<p>
Däremot kan man alltid läsa dem<br>
<div class=code>
<span class=asp>
<%<br>
=Application("aGoodName")<br>
%></span></div>
<p>
<li><a name="CO">Cookies</a> är möjligheten att spara värden på klientens
lokala dator för att sedan läsa dem nästa gång samma användare (dator) kommer tillbaka<p>
Används oftast för att "personifiera" websidor. Man kan fråga namnet första gången
och sedan nästa gång användaren kommer hälsa honom välkomen som en kär gammal vän<p>
För att skriva Cookies kan man göra på följande sätt:<br>
<div class=code>
<span class=asp>
<%<br>
' MÅSTE SKE FÖRE ALL ANNAN KOD INKLUSIVE <HEAD>
Response.Cookies("LastName") = <i>variabelvärde</i><br>
Response.Cookies("TestCookie") = "TESTAR"<br>
' man kan även ha en Cookie med flera värden<br>
Response.Cookies("MultipleCookie")("first") = "Första"<br>
Response.Cookies("MultipleCookie")("second") = "Andra"<br>
' man kan även skapa Cookies vars värde inte gäller efter ett visst datum<br>
Response.Cookies("ExpireCookie") = "Blaha"<br>
Response.Cookies("ExpireCookie").Expires = Date + 30 ' Om 30 dagar<br>
' För att radera en Cookie kan man sätta ett Expiration date som förfallit<br>
Response.Cookies("KillThisCookie").Expires = Date - 1 ' Döda<br>
%></span></div>
<p>
Man kan sedan skriva ut eller läsa dem med:<br>
<div class=code>
<span class=asp><%=Request.Cookies("LastName") %></span><br><br>
<span class=asp><%=Request.Cookies("TestCookie") %></span><br><br>
<span class=asp><%' man kan även ha en Cookie med flera värden %></span><br><br>
<span class=asp><%=Request.Cookies("MultipleCookie")("first") %></span><br><br>
<span class=asp><%=Request.Cookies("MultipleCookie")("second") %></span><br><br>
<span class=asp><%=Request.Cookies("ExpireCookie") %></span><br><br>
</div>
</ol>
<p>
Nedan kommer dessa cookiernas värden <br>
<a href="cookies.asp" target="_new">Är det tomt så klicka här så sätter jag Cookie värdena</a>, tag sedan Refresh.<br>
<div class=res>
Request.Cookies("LastName") : <%  =Request.Cookies("LastName") %><br>
Request.Cookies("TestCookie") : <%=Request.Cookies("TestCookie")%><br>
<%' man kan även ha en Cookie med flera värden%><br>
Request.Cookies("MultipleCookie")("first") : <%=Request.Cookies("MultipleCookie")("first")%><br>
Request.Cookies("MultipleCookie")("second") : <%=Request.Cookies("MultipleCookie")("second")%><br>
Request.Cookies("ExpireCookie") : <%=Request.Cookies("ExpireCookie")%><br>
</div>
<p>
Session variabler är egentligen Cookies med en sessionslivstid!<p>
<font size="5"><a name="BOTTOM">Några</b> sista ord om Sessionvariabler, Applikationvariabler och Cookies:
<br>
<font size="7" color="MAROON"><b>Använd dem inte!</b></font>
<br>
Ett väl fungerande system skall fungera utan!</font>
<p>
Jag tänker inte förklara varför, bara konstatera att det är så!<p>
<!--#include file="../inc/footer.asp" -->