Linkerzijkant

Zoeken

Zoek in dit item






[howto] De basis van ASP


    [offline] Geplaatst op zaterdag 24 juni 2006 00:54

    Acties:


    Door: Aapje
    Admin
    Phfear zeh birdeh
    Afbeelding van Aapje
    [howto] De basis van ASP
    http://img1.the-baboon.nl/e79c45cf0b1c886793145a58073020daaap-noot-mies-leesplankje.jpg
    De regels
    Inhoudsopgave:
    • Inleiding
    • Waar staat ASP voor en wat is het?
    • Wat is een ASP bestand precies
    • Hoe verschilt een ASP bestand van HTML bestanden?
    • Wat kan je amet ASP?
    • Kan ik thuis ook ASP gebruiken?
    • ASP basis
    • ASP uitvoer
    • Gebruiker doorverwijzen naar een andere pagina
    • Commentaar
    • Variables
    • Declareren (Dim)
    • Levensduur variables
    • Session variables
    • Application variables
    • Procedures
    • Formulieren en gebruiker invoer
    • Cookies
    • Wat als een browser geen cookies ondersteund
    • Session object
    • Application Object
    • #Include bestanden invoegen
    • De global.asa
    Hele tutorial is geschreven door Aapje, en is ook alleen bestemt voor The-Aapje.nl.
    Inleiding

    Ik schrijf een beetje namens mijzelf, ik leg in deze tutorial alleen de benodigde dingen uit waar je ASP mee kan gaan proberen te gebruiken, je hebt wel een kleine voorkennis nodig.
    Wat moet je al kennen voor je aan ASP begint:
    HTML / XHTML
    Een script taal zoals bijvoorbeeld JavaScript / VBscript / VB.Net e.a. script talen
    Je hoeft ’t niet diepgaande te kennen, klein beetje ‘script’ idee is genoeg, variables, if statements, etc.

    In deze tutorial maak ik gebruik van kleuren, e.a. manieren om het goed en duidelijk te maken.

    Gezien ik mezelf op het internet baboon noem, en ik onder het maken van deze tutorial nootjes gegeten heb, moest ik al snel denken aan het Aap, noot mies verhaal wat op de boven in de startpost staat :-)

    Ik hoop dat je het allemaal snel leert, en dat ik je met deze tutorial kan helpen, success.
    Waar staat ASP voor en wat is het?

    ASP., Active Server Pages
    ASP Is een server taal, daarom heb je dus een web server nodig om het te gebruiken.
    Een Web server kan bijvoorbeeld zijn: IIS
    IIS dat weer staat voor Internet Information Server

    Het serveert dus Informatie zoals de naam zegt.
    Je kunt de IIS installeren als je Windows XP Pro hebt, of vanaf NT4.0
    Voor Windows 98 heb je PWS wat weer staat voor: Personal Web Server
    PWS is kleiner, maar wel volledig werkend met ASP, op wat kleinere foutjes na.
    Wat is een ASP bestand precies

    Een ASP bestand is exact het zelfde als een HTML bestand, echter bevat ASP een script mogelijkheid.
    De scripts worden uitgevoerd op de Web Server, dus zijn daarom niet zichtbaar in de Web Browser.
    Hoe verschilt een ASP bestand van HTML bestanden?

    http://img1.the-baboon.nl/045a607cbfee75c1fe6de4a06e3928c8asp-ding.jpg
    Het ASP bestand word regel voor regel gelezen, en kan dus bijvoorbeeld een database aanroepen voor informatie, zodra hij aan het eind van het bestand is stuurt hij de uitvoer van het bestand door naar de Web Browser.

    Het HTML bestand word direct naar de Web Browser gezonden.
    Wat kan je met ASP?

    Je kunt dynamisch informatie bewerken, verwijderen, toevoegen.
    Het kan reageren op gebruiker invoer, en opvragen.
    Het kan databases bereiken, en informatie doorspelen naar de gebruiker.
    Het kan webpagina’s op gebruikers apart veranderen.
    De uitvoer van ASP is standaard HTML en kan dus bekeken worden in elke web browser.
    Kan ik thuis ook ASP gebruiken?

    Antwoord verschilt per besturing systeem,
    Bij de volgende systemen is het mogelijk,
    Windows 98 En hoger
    Windows XP Pro (Home niet)
    Windows 2000 Reeks
    En de Server versie van 2003

    Voor Windows 9x heb je PWS nodig
    Voor Windows NT, 2000/XP/2003 heb je IIS nodig
    De IIS versie verschilt per besturing systeem, de nieuwste zit in 2003, deze is ook het veiligste qua exploits en fouten.
    ASP basis

    Een ASP bestand bevat gewoon HTML tags, alleen hij kan ook server scripts bevatten
    Deze server scripts worden herkend zodra tussen de HTML tags:
    ASP:
    1
    
    <% en %>

    Als tussen die tags code komt te staan, herkend de web server dit als script.
    ASP uitvoer

    Response.Write word gebruikt om naar de browser te communiceren, vrij vertaald: Reageer.DoorSchrijven
    Voorbeeld:
    ASP:
    1
    2
    3
    4
    5
    6
    7
    
    <html>
      <body>
      <%
     Response.Write("Hallo wereld")
      %>
     </body>
    </html>

    Response.Write kan ook makkelijker gebruikt worden:
    ASP:
    1
    2
    3
    4
    5
    
    <html>
      <body>
        <%="Hallo wereld"%>
     </body>
    </html>


    Dit is en kleinere methode om makkelijk informatie te sturen naar de web browser.
    Het is het zelfde commando als Response.Write, alleen verkleint, handig als je dus snel iets kleins wilt laten zien in de browser.
    Gebruiker doorverwijzen naar een andere pagina

    Je kunt een gebruiker ook doorsturen naar een andere pagina via de code.
    Dit gaat net zo makkelijk als een regeltje tekst te laten zien.
    De webbrowser krijgt namelijk via http headers een code van de webserver, die zegt:
    Location: /test/index.html
    Of naturlijk een ander bestand/Directory ;-)
    Dit gaat zo:
    code:
    1
    2
    3
    
    <%
    Response.Redirect "foobar.asp"
    %>


    Er zitten geen risco’s aan of andere dingen
    Het is zelfs mogelijk om een bezoeker te verwijzen naar een andere website via bijv:
    code:
    1
    2
    3
    
    <%
    Response.Redirect "http://www.the-baboon.nl/"
    %>


    Je ziet dat ik gewoon de gebruiker Door stuur naar een http adres.
    De code letterlijk vertaald is:
    Reageer.Doorstuur
    De pagina stopt bij het doorsturen van de gebruiker met laden van de pagina.
    De gebruiker word dus direct op dat punt verstuurd naar de andere site
    Commentaar

    Je kunt ook commentaar in de code kwijt. Commentaar is geen code, maar stukken tekst die de programmeur heeft achtergelaten voor de gene die het script/code later zal gaan veranderen of gebruiken. Hiermee kan je dus aangeven in de code wat je gaat doen e.a. dingen.

    Dit gaat zo:
    code:
    1
    2
    3
    4
    
    <%
    Response.Write "Ik zeg hier allo" 
    ‘Ik heb allo gezegt tegen de bezoeker! :-)
    %>


    De commentaar stukjes worden aangeven met een ‘ ervoor
    Zit er dus een ‘ voor de tekst, dan zal de ASP engine stoppen bij die karakter, en veder gaan naar de volgende regel.
    Variables

    Variables kan je op meerdere manieren gebruiken.
    Je moet ze meestal declareren, hoeft niet, maar het verbetert wel de snelheid van je script uitvoering.
    Declareren (Dim)

    Je kan variables ook declareren om ze te gebruiken in elk scriptje in je ASP bestand.
    Als je bekend bent met VisualBasic of JavaScript komt het volgende wel bekend voor.

    Voorbeeld:
    code:
    1
    2
    3
    4
    5
    6
    
    Sub Testje()
     Dim Foo
     Foo = "bar"
    End Sub
    Call Testje()
    Response.Write "Hopelijk geen bar achter de dubbelepunt: " & Foo


    Als je wilt dat Foo wel te bereiken is buiten de functie, dan moet je de variable ook buiten de functie declareren
    Voorbeeld:
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    Dim Foo
    Foo = "test"
    Sub Testje()
     Foo = "bar"
    End Sub
    
    Response.Write "Nu staat er test achter de dubbelepunt: " & Foo
    Call Testje()
    Response.Write "Nu staat er bar achter de dubbelepunt: " & Foo


    Je kan deze scriptjes ook zelf uitproberen.

    Conclusie, Als je een variable declareert buiten een functie is hij bewerkbaar + bereikbaar buiten de functie, declareer je hem in de functie, dan word hij aangemaakt, en verwijdert elke keer je de functie aanroept.
    Levensduur variables

    Een variable kan je zoveel je wilt gebruiken in een ASP bestand, en hij is oproepbaar naar wens, let wel op de manier waar je ze declareert.
    Als je wilt dat je een variable blijft behouden in alle pagina’s die de bezoeker bezoekt, dan moet je de variable declareren als Session of Application variable
    Session variables

    Session variables worden veel gebruikt om informatie op te slaan over 1 specifieke gebruiker, en zijn beschikbaar in elke pagina in ??n applicatie. Ze worden vaak gebruikt om een gebruikersnaam of ID op te slaan.
    Sessions gebruik je via:
    code:
    1
    
    Session("naam") = "test"

    En roep je op via:
    code:
    1
    
    <%=Session("naam")%>

    Application variables

    Application variables zijn ook beschikbaar in alle pagina’s in ??n applicatie. Alleen worden application variables gebruikt om informatie op te slaan over alle gebruikers van ??n applicatie.
    Application variables stel je meestal in via de Global.asa, meer hierover later.
    Procedures

    Procedures zijn stukjes code die je aangeeft om hergebruikt te kunnen worden.
    Bijvoorbeeld een rekenfunctie:
    code:
    1
    2
    3
    4
    5
    6
    
    <%
    Sub Calculatie(strGetal1, strGetal2)
        Response.write (strGetal1 + strGetal2)
      End Sub
     %>
    1+1 = <%Call Calculatie(1, 1)%>

    Dit noemt men subroutines, je hebt ook een soort gelijk systeem dat informatie als uitvoer heeft:
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    <html>
      <%
     Function Calc(Num1, Num2)
       Calc = Num1 + Num2
    End Function
    %>
     <body>
        Heeej! 1+1 = <%=calc(1, 1)%>
      </body>
    </html>


    Dit noemt men functies, je moet wel zorgen dat de functie of subroutine die je aanroept, bestaat, en dat hij boven de code staat waar je hem aanroept.
    Anders zal de onderliggende code de subroutine niet herkennen, en een foutmelding geven.

    Bij de subroutine staat er ‘Call’ (Roep aan), Dit is er om te zorgen dat de subroutine aangeroepen word. Call hoeft er dus niet bij, maar is wel netter en sneller.
    Formulieren en gebruiker invoer

    Om informatie van de gebruiker te krijgen moet dit via het http protocol op de server terrecht komen, dit kan op 2 manieren, namelijk via een get of een post.

    GET
    De get is een protocol dat veel gebruikt word zodra je webpagina’s bezoekt.
    Elke pagina die jij opent gaat via een stukje genaamd headers.
    GET /index.html HTTP/1.1
    Host: www.example.com
    Dit kunnen de get headers zijn voor de pagina: \index.html, op de site: www.example.com, zoals je ziet is dit nog vrij simpel.

    Maar misschien heb je wel gezien op sommige webpagina’s dat er wat achter het bestand staat bijv: http://www.the-baboon.nl/?url=\home.asp
    Het dik gedrukte noemt men QueryStrings. Deze werken zo, alles wat achter het vraagteken zit zijn QueryStrings, zo werken ze: =, hoe je ze opvraagt leg ik later uit.

    Post
    De post headers zitten iets complexer in elkaar, deze zijn niet zichtbaar zoals de QueryStrings
    Maar je kan ze wel aanroepen. Maar aanroepen is het makkelijkste gedeelte van de Post manier. Het posten van de informatie is lastiger. Dit posten van informatie gaat via formulieren, formulieren maak je aan in HTML. En dit kan het makkelijkste met een wysiwyg editor of als je veel ervaring met HTML hebt uit het hoofd.
    Formulieren
    Om informatie van een gebruiker te krijgen wil je dat de gebruiker dit ergens invoert. Bijvoorbeeld een tekstbox op het scherm.
    Om een tekstbox te gebruiken, moet je eerst een
    item in HTML aanmaken, deze geef je informatie waar hij de informatie moet heen posten, en hoe hij dit moet posten.
    Tip: Zijn zelfs opties bij om de informatie via een Get request te posten.
    Voorbeeld:
    code:
    1
    2
    3
    4
    5
    
    <form method="post" action="simpelformulier.asp">
    First Name: <input type="text" name="voornaam" /><br />
    Last Name: <input type="text" name="achternaam" /><br /><br />
    <input type="submit" value="Submit" />
    </form>

    Tip: Sla op als form1.asp om het verschil te zien tussen de stukken code in het volgende hoofdstuk.
    Dit is een simpel formulier dat vraagt om een voornaam en een achternaam.
    Het bestand ‘simpelformulier.asp’ krijgt in ons geval de opdracht om:
    Welkom,
    Als uitvoer te geven.
    Om dit te bereiken doen we het volgende:
    code:
    1
    2
    3
    
    <html><body>
      Welkom, <%=request.form("voornaam")%>
    </body></html>


    Zoals je ziet is de manier van het opvragen van die velden eenvoudig, je kan dit vrij vertalen naar: vraagop.formulier("naam").
    Deze ‘Request." word vaker gebruikt dan alleen bij dit, er is nog een tweede manier hoe je deze pagina kan laten werken, een iets minder nette manier, maar een effectieve, op deze manier kan je namelijk het bestand laten werken voor formulieren & QueryStrings.

    QueryStrings
    Om een querstring op te vragen, moet je erwel een bezitten, daarom pakken we het zelfde formulier als in het vorige stukje, alleen veranderen we ??n ding (onderstreepte is veranderd).
    code:
    1
    2
    3
    4
    5
    
    <form method="get" action="simpelformulier.asp">
    First Name: <input type="text" name="voornaam" /><br />
    Last Name: <input type="text" name="achternaam" /><br /><br />
    <input type="submit" value="Submit" />
    </form>


    We slaan dit bestand op als form2.asp
    We gaan eerst zorgen dat ‘simpelformulier.asp’ werken gaat voor form2.asp, daarna zorgen we ervoor dat hij werkt voor beide formulier bestanden.
    code:
    1
    2
    3
    
    <html><body>
     Welkom, <%=request.querystring("voornaam")%>
    </body></html>


    We hebben er nu voor gezorgd dat hij QueryStrings gaat opvragen, probeer maar uit.


    Request.
    De request. Functie kan voor meerdere dingen werken, je kan er server variables mee opvragen, querystrings, formulieren, cookies…
    Om te zorgen dat ‘simpelformulier.asp’ werkt op beide formulieren (form1.asp, en form2.asp), dan kan je de code simpeler maken, en het volgende doen:
    code:
    1
    2
    3
    
    <html><body>
     Welkom, <%=request("voornaam") & "%>
    </body></html>


    Je zorgt er nu voor dat hij zoekt waar de string bestaat, bijvoorbeeld in form of querystring.
    Er zal geen merkbaar verschil in de snelheid zijn, maar je maakt op deze manieren wel je scripts minder veiliger.
    QueryStrings worden namelijk vaak opgeslagen in een geschiedenis van een web browser, dus stel dat je daarmee een login formulier gemaakt heb, dan staan die wachtwoorden enzovoort allemaal in de geschiedenis, waarbij een formulier het verwijderd zou zijn.

    Valideren van gebruiker informatie
    Wanneer je wil valideren wat een gebruiker heeft ingevoerd, gebruik dan geen server scripts om dit te doen, probeer zoveel mogelijk client-sided scripts toe te passen, je kan dan dynamischer zeggen dat iets niet klopt, en het scheelt je server performance.

    "My software never has bugs, it just develops random features."


    [offline] Geplaatst op zaterdag 24 juni 2006 00:56

    Acties:


    Door: Aapje
    Admin
    Phfear zeh birdeh
    Afbeelding van Aapje
    Cookies

    Cookies worden vaak gebruikt om gebruikers te herkennen, Een cookie is een klein bestand dat de server op de opslaat op de bezoeker z’n computer.
    Elke keer dat de bezoeker terug komt op de site, stuurt de browser de gegevens in de cookies mee naar de site.
    Met ASP kan je cookies aanmaken en opvragen.

    Aanmaken van cookies
    Het aanmaken van cookies is vrij simpel, je moet reageren naar cookies, dus net als de Hallo wereld, moet je nu Response. Gebruiken.
    code:
    1
    2
    3
    
    <%
    Response.cookies("voornaam") = "foo"
    %>


    Dit zorgt ervoor dat er een cookie aangemaakt word, genaamd voornaam, met de waarde foo.
    Cookies kunnen ook de opdracht krijgen om te verdwijnen naar X aantal dagen, of uren.
    Om dit te doen moet je het volgende doen:
    code:
    1
    2
    3
    4
    
    <%
    Response.cookies("voornaam") = "foo"
    Response.Cookies("voornaam").Expires=#May 10,2002#
    %>

    Zoals je ziet maak je eerst een cookie aan en daarna geef je hem de opdracht om te expireren zoals dat heet, op 10 Mei 2002. Let op dat bij een Nederlandstalige web server de datum kan tegenspelen op de resultaten.

    Informatie uit een cookie opvragen
    Zoals bij het informatie opvragen uit een querystring, formulier, server variables, kan je ook bij cookies het Request, onderdeel gebruiken.
    code:
    1
    2
    3
    4
    
    <%
    Voornaam=Request.Cookies("voornaam")
    Response.Write "Voornaam is: " & Voornaam
    %>

    Meerdere sleutels in een cookie
    Als een cookie meerdere waardes heeft dan noemt men dat op z’n engels: cookie has keys.
    Meerdere sleutels dus, je kan dan een cookie aanmaken genaamd: Gebruiker
    En daarin informatie opslaan van de gebruiker zoals voornaam, achternaam, leeftijd etc.
    Dit gaat als volgt:
    code:
    1
    2
    3
    4
    5
    
    <%
    Response.Cookies("gebruiker")("voornaam")="John"
    Response.Cookies("gebruiker")("achternaam")="Doe"
    Response.Cookies("gebruiker")("leeftijd")="120"
    %>


    Je kan deze gewoon opvragen via Request.Cookies("gebruiker")("sleutel").

    Alle cookies uitlezen
    Laten we er vanuit gaan dat je de volgende cookies hebt verzonden naar de bezoeker:
    code:
    1
    2
    3
    4
    5
    6
    
    <%
    Response.Cookies("voornaam")="Alex"
    Response.Cookies("gebruiker")("voornaam")="John"
    Response.Cookies("gebruiker")("achternaam")="Doe"
    Response.Cookies("gebruiker")("leeftijd")="120"
    %>

    Om dit te gaan uitlezen zou je veel moeite moeten doen om alle cookies te selecteren enzovoort, dit kan makkelijker als we dit automatiseren.
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    <html>
    <body>
    <%
    dim x,y
    for each x in Request.Cookies
      response.write("<p>")
      if Request.Cookies(x).HasKeys then
        for each y in Request.Cookies(x)
          response.write(x & ":" & y & "=" & Request.Cookies(x)(y))
          response.write("<br />")
        next
      else
        Response.Write(x & "=" & Request.Cookies(x) & "<br />")
      end if
      response.write "</p>"
    next
    %>
    </body>
    </html>

    Hint: for each werkt simpel, deze doet voor ELK item in ‘…’ iets uitvoeren, onderaan staat next, en daarmee gaat hij naar het volgende item in de each ‘loop’, zodra je op het internet gaat zoeken naar ‘loop asp’ vind je meerdere soorten loops.
    Wat als een browser geen cookies ondersteund

    Je kan als een browser geen cookies ondersteund het opslaan in sessions, een database zoals access, of formulieren en querystrings gebruiken.
    Dit laaste word nu uitgelegd.

    QueryStrings gebruiken om cookies te vervangen
    Je kan parameters toevoegen in een url:

    code:
    1
    
    <a href="welkkom.asp?voornaam=John&achternaam=Doe">Kom binnen</a>

    In de welkom.asp doen we het volgende:
    code:
    1
    2
    3
    4
    
    <%
    Voornaam = request.querystring("voornaam")
    Achternaam = request.querystring("achternaam")
    Response.Write "Welkom " & voornaam & " " & achternaam%>

    Session object

    Wanneer je werkt met een programma en je wilt iets veranderen.
    Dan open je het programma, verander je wat je wil veranderen, en je sluit het programma.
    De computer weet dan dat jij het bent, hij weet dat je een programma opent en sluit.

    Maar op het internet is er een probleem, de http verbinding blijft niet bestaan als de pagina geladen is.

    ASP lost dit probleem op door een unieke cookie te schrijven voor elke gebruiker. Deze cookie verzonden naar de cli?nt. Dit word het Session object genoemd

    Waardes opgeslagen in een Session object bevatten informatie over 1 enkele gebruiker.
    Deze waardes kunnen veranderd worden en ook opgevraagd.

    Wanneer begint een Session
    Een sessie begint zodra:
    • Een nieuwe gebruiker vraagt een ASP pagina op, en de Global.asa voegt een
    • Session_OnStart procedure erbij in.
    • Een waarde is opgeslagen in een Session variabel.
    • Een gebruiker vraagt een ASP bestand op, en de global.asa maakt gebruik van het tag om een object met een Session scope instantiateWanneer eindigt een Session
      Een session kan je op 3 manieren laten stoppen.
      Je kan een timeout instellen, je kan hem zelf via de code laten stoppen, maar je kan ook wachten tot de server de Session vergeet en dus stopt op de standaard timeout.
      De standaard timeout is meestal 20minuuten
      Als de bezoeker binnen die 20minuten niets doet op de site, dan zal de Session vergeten worden en alle geheugen plekken opgeruimd worden.

      Je kan zelf dus ook de timeout instellen, dit doe je zo:
      code:
      1
      2
      3
      
      <%
      Session.Timeout = 5
      %>


      Dit word een timeout van 5 minuten, zodra dit uitgevoerd is en de pagina klaar is met laden, zal de session verdwijnen na 5 minuten.

      Om een session direct te eindigen, kan je het volgende doen:
      code:
      1
      2
      3
      
      <%
      Session.Abandon
      %>


      De session zal direct ge?indigd worden en alle gegevens zullen verloren gaan.

      Note:
      Het probleem met sessions is zodra ze ZOUDEN moeten stoppen we niet zeker weten of de huidige pagina de laaste aanvraag richting de server is. Het is dus moeilijk om te bepalen wanneer een session gestopt kan worden, of gestopt is.
      Het vroeg stoppen van een Session is goed voor de webserver, want een session neemt systeem resources in die natuurlijk vitaal zijn voor nieuwe bezoeken.


      Tip:
      Om effici?nt om te gaan met Sessions, sla zo min mogelijk informatie op in de Session.
      Bijvoorbeeld, je wilt een gebruikers naam opslaan erin, maar je hebt de gebruikers naam ook in een Database staan.
      Sla dan alleen het ID op van de gebruikersnaam, en vraag hem uit de database op zodra je hem nodig hebt.
      (Tenzij je de gebruikersnaam op elke pagina nodig hebt, dan kan het sneller zijn om hem gewoon compleet erin te zetten.)


      Instellen/Opvragen van een Session
      Het opslaan en opvragen van sessions gaat vrij simpel.
      Het lijkt een beetje op de cookies, echter gaat dit een stuk gemakkelijker.
      Maar laat je niet verleiden om ze veel te gebruiken, Session objecten vragen veel van de server. Heel veel session objecten kunnen zelfs het hele geheugen van een webserver opslokken, en zo de volgende bezoeken moeilijk maken tot zelfs onmogelijk.
      code:
      1
      2
      3
      4
      5
      
      <%
      Session("gebruikersnaam") = "foo"
      Session("leeftijd") = "18"
      Session("Ingelogd") = True
      %>


      Je ziet dat nu ingesteld is dat de gebruiker ingelogd is en dat hij 18 jaar is, met de gebruikersnaam foo

      Stel je wilt weten of de gebruiker ingelogd is, maar zodra hij dit niet is moet hij door gestuurd worden naar disneyland.com:
      code:
      1
      2
      3
      4
      5
      
      <%
      If Session("Ingelogd") = True Then
        Response.Redirect "http://www.disneyland.com"
      End If
      %>


      De pagina stopt bij het doorsturen van de gebruiker met laden van de pagina.
      De gebruiker word dus direct op dat punt verstuurd naar de andere site.

      Je kan dus een Session object opvragen via:
      code:
      1
      2
      3
      
      <%
      Response.Write Session("Gebruikersnaam")
      %>

      Session variabels verwijderen
      Het Contents collectie object bevat alle Session variabels.

      Het is mogelijk om een variabel weg te gooien met behulp van de remove methode
      Het is mogelijk op 1 enkele, of alle session variabels weg te gooien,
      Voorbeeld:
      code:
      1
      2
      3
      4
      5
      
      <%
      If Session.Contents("Leeftijd") < 18 Then
       Session.Contents.Remove("verkoop")
        End If
      %>

      Zo verwijder je 1 variabel, als je alles wilt verwijderen gebruik het volgende
      code:
      1
      
      <% Call Session.Contents.RemoveAll() %>

    Application object

    Een application object is bijna het zelfde als een Session object, echter verschilt er een ding.
    De application objecten zijn in elke pagina, voor elke gebruiker beschikbaar, waar Session objecten alleen beschikbaar zijn voor ??n gebruiker.

    Je kan een Application object als volgt aanmaken in de "global.asa"*:
    *: Later hier meer hierover.
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    
    <script language="vbscript" runat="server">
    
    Sub Application_OnStart
    application("foo")="bar"
    application("gebruikers")=1
    End Sub
    
    </script>


    Hier boven hebben we 2 application objecten aangemaakt, foo en gebruikers.
    De rest van de code is van het bestand global.asa*

    Goed, om deze variabel Gebruikers op te vragen doe je het volgende:
    code:
    1
    2
    3
    
    <html>
    Er zijn <%=application("gebruikers")%> verbindingen naar de website
    </html>

    Note: deze code breiden we bij het hoofdstuk over de global.asa veder uit.

    Om ervoor te zorgen dat de application object niet veranderd word als je bezig bent kan je hem op slot zetten, of op z’n engels genoemd: Locken

    Dit doe je zo:
    code:
    1
    2
    3
    4
    5
    
    <%
    Application.Lock
    ‘doe wat applicatie veranderingen of iets dergelijks hier.
    Application.Unlock
    %>

    #Include bestanden invoegen

    Je kan bestanden samenvoegen, dus asp bestanden waar je bijvoorbeeld een handige functie in geschreven hebt, invoegen in het begin van een ander bestand.
    Voorbeeld:
    code:
    1
    2
    3
    4
    5
    6
    
    Bestand: invoegen.inc.asp
    <%
    Sub HalloWereld()
     Response.Write "Hallo wereld! I’ts alive! "
    End Sub
    %>


    code:
    1
    2
    3
    4
    5
    6
    7
    
    Bestand: default.asp
    <html>
    <!--#include file=”invoegen.inc.asp”-->
    <%
    Call HalloWereld()
    %>
    </html>


    Het grijze is de include regel, dit zorgt ervoor dat de bron van het bestand wat aangegeven word ingevoegd word op dat punt.
    Deze include regels kan je op 2 manieren gebruiken, de directe aanroep met ‘file=’ of de virtuele aanpak met: ‘virtual=’
    Je kan hierin gewoon html bestanden opslaan, maar ook ASP Code e.a. dingen.

    Virtuele aanpak
    Deze aanpak is heel gebruikelijk zodra je een bestand wilt aanroepen die in een andere sub directory zit dan jou bestand waar je het in uitaanroept.

    Dus, nu een voorbeeld zodat je het misschien makkelijker begrijpt:
    code:
    1
    2
    3
    4
    5
    6
    
    Bestand: c:\www\includes\hallo.inc.asp
    <%
    Sub HalloWereld()
     Response.Write "Hallo wereld! I’ts alive! "
    End Sub
    %>


    code:
    1
    2
    3
    4
    5
    
    Bestand: c:\www\test\default.asp
    <html>
    <!--#include virtual=”/www/includes/hallo.inc.asp”-->
    <%Call HalloWereld()%>
    </html>

    Een HTML achtige aanpak dus.

    File aanpak
    De file aanpak is wat simpeler, en kan je ook minder mee, maar je kan er toch genoeg mee om iets snel te uitvoeren.
    Voorbeeld:
    code:
    1
    2
    3
    4
    5
    6
    
    Bestand: c:\www\includes\hallo.inc.asp
    <%
    Sub HalloWereld()
     Response.Write "Hallo wereld! I’ts alive! "
    End Sub
    %>


    code:
    1
    2
    3
    4
    5
    
    Bestand: c:\www\default.asp
    <html>
    <!--#include virtual=”includes\hallo.inc.asp”-->
    <%Call HalloWereld()%>
    </html>

    Directe route naar het bestand.
    Letop: De include regel, werkt alleen buiten de ASP code tags.
    De global.asa

    De global.asa komt heel vaak goed van pas zodra je een database gebruikt, of wilt tellen hoeveel gebruikers je op je site op dat moment hebt.

    Hoe? Je hebt verschillende manieren waarop je code kan instellen in de global.asa.
    Je kan in de global.asa ASP code invoegen, die gewoon uitgevoerd word wanneer dit gevraagd word.
    Er zijn verschillende gebeurtenissen waarop de Global.asa in actie komt en zijn bij behorende code uitvoert.

    Application_OnStart – Deze gebeurtenis zorgt ervoor dat er code word uitgevoerd als er een allereerste bezoeker op jou ASP applicatie komt.
    De aller allereerste dus. Dit gebeurt alleen als de server net gestart is, of als de global.asa bestand bewerkt is.

    Session_OnStart – deze gebeurtenis word telkens uitgevoerd zodra een nieuwe bezoeker op de applicatie komt.

    Session_OnEnd – Deze gebeurtenis gebeurt telkens zodra een bezoeker session timeout erop zit, standaard is dit meestal 20minuten.
    Zodra de gebruiker inactief is dus.

    Application_OnEnd ?- Deze gebeurtenis word alleen uitgevoerd zodra een web server ge-restart word, of gestopt.
    Dit word ook meestal alleen gebruikt om een database tijdelijke records bijvoorbeeld op te ruimen, of variables op te ruimen.

    Een global.asa bestand heeft meestal de standaard opmaak zoals deze:
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    <script language="vbscript" runat="server">
    sub Application_OnStart
      'some code
    end sub
    sub Application_OnEnd
      'some code
    end sub
    sub Session_OnStart
      'some code
    end sub
    sub Session_OnEnd
      'some code
    end sub
    </script>

    Zoals je misschien herkend zitten er Sub routines in, en je kan daarin gewoon code invoegen.
    Notitie: In een global.assa bestand kan je geen response.writes en andere reacties doen, ook hoef je geen gebruik te maken van de ASP code tags <% %>


    De beveiliging van global.asa
    De global.asa is een prima bestand om verbindingen naar database servers, je kan hierin netjes je password in zetten met de zekerheid dat een bezoeker van je site niet het password kan bemachtigen (tenzij je een foute code maakt natuurlijk).

    De global.asa is verboden om direct aangeroepen te worden in IIS.
    Het is dus echt onmogelijk om deze direct te oproepen. Vandaar dat je niet gebruik kan maken van reacties zoals .write, .redirect etc.

    Voorbeeld
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    <script language="vbscript" runat="server">
    Sub Application_OnStart
    Application("visitors")=0
    End Sub
    Sub Session_OnStart
    Application.Lock
    Application("visitors")=Application("visitors")+1
    Application.UnLock
    End Sub
    Sub Session_OnEnd
    Application.Lock
    Application("visitors")=Application("visitors")-1
    Application.UnLock
    End Sub
    </script>


    Deze code maakt heel simpel gebruik van de application variables om te tellen hoeveel bezoekers er zijn.

    Start
    Als de applicatie voor het eerst in gebruik word genomen, doet hij de bezoekers teller op 0 zetten.

    Start session (per bezoeker)
    Slot op de application variabel
    +1 application variabel
    Slot eraf

    Stop van een session (per bezoeker)
    Slot op de application variabel
    -1 application variabel
    Slot eraf

    Tip: Je kan nog veel meer met Global.asa als je op het internet zoekt naar ‘global.asa+asp+functions’ kom je wat geavanceerdere functies en methodes tegen.
    Maar zover gaat deze handleiding niet.

    "My software never has bugs, it just develops random features."


    [offline] Geplaatst op zaterdag 24 juni 2006 01:06

    Acties:


    Door: Aapje
    Admin
    Phfear zeh birdeh
    Afbeelding van Aapje
    Changelog
    • Changelog veranderd
    • Fouten in Quotes veranderd :)
    Zo commentaar hier: Topic

    "My software never has bugs, it just develops random features."


    [offline] Geplaatst op woensdag 30 mei 2007 00:14

    Acties:


    Door: Aapje
    Admin
    Phfear zeh birdeh
    Afbeelding van Aapje
    Forum is veranderd, dus de codes kloppen niet meer. Word aangewerkt.

    "My software never has bugs, it just develops random features."

Dit onderwerp heeft 3 reacties, en bestaat uit 1 pagina.
De laatste reactie is geplaatst op 30-05-2007 00:14.

Troep