Handboek Annuleren

Overzicht van dynamische inhoudsbronnen

 

 

Opmerking:

De gebruikersinterface van nieuwere versies van Dreamweaver is vereenvoudigd. Daarom zijn sommige opties die in dit artikel worden beschreven, niet beschikbaar in nieuwere versies van Dreamweaver. Meer informatie vindt u in dit artikel.

Over dynamische inhoudsbronnen

Een dynamische inhoudsbron is een opslagplaats van informatie van waaruit u dynamische inhoud voor een webpagina kunt ophalen en weergeven. Dynamische inhoudsbronnen zijn niet alleen gegevens die in een database zijn opgeslagen, maar ook waarden die via HTML-formulieren worden verkregen, waarden in serverobjecten en andere inhoudsbronnen.

Met Dreamweaver kunt u eenvoudig een database verbinden en een recordset maken waaruit u dynamische inhoud haalt. Een recordset is het resultaat van een databasequery. Met een recordset haalt u de specifieke informatie die u vraagt, uit de totale informatie en kunt u deze informatie op een opgegeven pagina weergeven. U definieert de recordset op basis van de informatie in de database en de inhoud die u wilt weergeven.

Verschillende technologieleveranciers kunnen andere technologie hanteren voor een recordset. In ASP en ColdFusion wordt een recordset een query genoemd. Als u andere gegevensbronnen gebruikt, bijvoorbeeld gebruikersinvoer of servervariabelen, is de naam van de gegevensbron die in Dreamweaver is gedefinieerd, gelijk aan de naam van de gegevensbron zelf.

Dynamische websites hebben een gegevensbron nodig waaruit dynamische inhoud kan worden opgehaald en weergegeven. Met Dreamweaver kunt u databases, request-variabelen, URL-variabelen, servervariabelen, formuliervariabelen, opgeslagen procedures en andere dynamische inhoudsbronnen gebruiken. Afhankelijk van de gegevensbron kunt u nieuwe inhoud ophalen om aan een verzoek te voldoen, of de pagina wijzigen om aan de behoeften van gebruikers tegemoet te komen.

Elke inhoudsbron die u in Dreamweaver definieert, wordt toegevoegd aan de lijst met inhoudsbronnen in het deelvenster Bindingen. Daarna kunt u de inhoudsbron invoegen op de geselecteerde pagina.

Informatie over recordsets

Webpagina's hebben niet rechtstreeks toegang tot de gegevens die in een database zijn opgeslagen. In plaats daarvan vindt er interactie plaats tussen de webpagina en een recordset. Een recordset is een deelverzameling van de gegevens (records) die uit de database wordt opgehaald met behulp van een databasequery. Een query is een zoekinstructie die is ontworpen om specifieke informatie in een database te zoeken en deze daaruit te extraheren.

Wanneer u een database als inhoudsbron voor een dynamische webpagina gebruikt, moet u eerst een recordset maken waarin u de opgehaalde gegevens opslaat. Recordsets fungeren als intermediair tussen de database waarin de inhoud wordt opgeslagen, en de toepassingsserver die de pagina genereert. Recordsets worden tijdelijk opgeslagen in het geheugen van de toepassingsserver zodat gegevens sneller kunnen worden opgehaald. De server verwijdert de recordset wanneer deze niet meer nodig is.

Een query kan een recordset opleveren die alleen bepaalde kolommen, alleen bepaalde records of een combinatie van beide bevat. Een recordset kan ook alle records en kolommen van een databasetabel bevatten. Omdat toepassingen echter zelden alle data in een database moeten gebruiken, dient u ernaar te streven om uw recordsets zo klein mogelijk te houden. Omdat de webserver de recordset tijdelijk in het geheugen vasthoudt, is voor het gebruik van een kleinere recordset minder geheugen vereist en kunt u de prestaties van de server potentieel verbeteren.

Databasequery's worden geschreven in SQL (Structured Query Language), een eenvoudige taal waarmee u databasegegevens kunt ophalen, toevoegen en verwijderen. Met de SQL builder die bij Dreamweaver wordt geleverd, kunt u eenvoudige query's maken zonder kennis van SQL. Maar wanneer u complexe SQL-query's wilt maken, biedt enige elementaire kennis van deze taal u de mogelijkheid geavanceerdere query's te maken, en biedt die meer flexibiliteit bij het ontwikkelen van dynamische pagina's.

Voordat u een recordset definieert voor gebruik met Dreamweaver, moet u een verbinding met een database maken en gegevens in de database invoeren als dat nog niet is gebeurd. Als u nog geen databaseverbinding voor uw site hebt gedefinieerd, raadpleegt u het hoofdstuk over databaseverbindingen voor de servertechnologie waarvoor u ontwikkelt, en volgt u de instructies voor het maken van een databaseverbinding.

Over URL- en formulierparameters

URL-parameters slaan opgehaalde informatie-invoer van gebruikers op. Als u een URL-parameter wilt definiëren, maakt u een formulier- of hypertekstkoppeling die de methode GET gebruikt om gegevens te verzenden. De informatie wordt toegevoegd aan de URL van de gevraagde pagina en wordt aan de server doorgegeven. Als u URL-variabelen gebruikt, bevat de queryreeks een of meer naam-/waardeparen die aan de formuliervelden zijn gekoppeld. Deze naam-/waardeparen worden aan de URL toegevoegd.

Formulierparameters slaan opgehaalde informatie op die in de HTTP-aanvraag voor een webpagina is opgenomen. Als u een formulier maakt dat de methode POST gebruikt, worden de gegevens die door het formulier zijn verzonden, doorgegeven aan de server. Voordat u begint, moet u ervoor zorgen dat u een formulierparameter aan de server doorgeeft.

Over sessievariabelen

Met sessievariabelen kunt u informatie opslaan en weergeven die gedurende het bezoek van een gebruiker (een gebruikerssessie) wordt vastgehouden. De server maakt voor elke gebruiker een afzonderlijk sessieobject en onderhoudt dat gedurende een ingestelde periode of tot het object expliciet wordt beëindigd.

Omdat sessievariabelen gedurende een hele gebruikerssessie bestaan, ook wanneer de gebruiker van de ene pagina naar de andere binnen de website gaat, zijn ze bijzonder geschikt om gebruikersvoorkeuren op te slaan. Sessievariabelen kunnen ook worden gebruikt om een waarde in de HTML-code van een pagina in te voegen, om een waarde aan een lokale variabele toe te wijzen of om een waarde op te geven om een voorwaardelijke expressie te evalueren.

Voordat u sessievariabelen voor een pagina definieert, moet u ze in de broncode maken. Wanneer u een sessievariabele in de broncode van de webtoepassing hebt gemaakt, kunt u met Dreamweaver de waarde ervan ophalen en op een webpagina gebruiken.

Hoe sessievariabelen werken

Sessievariabelen slaan informatie (doorgaans door gebruikers ingediende formulier- of URL-parameters) op en stellen deze voor de duur van het bezoek van de gebruiker beschikbaar aan alle pagina's van de webtoepassing. Wanneer gebruikers zich bijvoorbeeld aanmelden bij een webportaal dat toegang biedt tot e‑mail, aandelenprijzen, weerberichten en dagelijks nieuws, slaat de webtoepassing de aanmeldingsgegevens op in een sessievariabele die de gebruiker identificeert voor de pagina's van de gehele site. Hierdoor ziet de gebruiker alleen de typen inhoud die de gebruiker heeft geselecteerd bij het navigeren door de site. Sessievariabelen kunnen ook een beveiligingsmechanisme bieden waarmee de sessie van de gebruiker wordt beëindigd als het account een bepaalde tijd inactief is. Dit maakt ook geheugen op de server en verwerkingsresources vrij als de gebruiker vergeet om zich bij een website af te melden.

Sessievariabelen slaan informatie op voor de duur van de gebruikssessie. De sessie begint wanneer de gebruiker een pagina binnen de toepassing opent en eindigt wanneer de gebruiker niet binnen een bepaalde tijd een andere pagina in de toepassing opent of wanneer de gebruiker expliciet de sessie beëindigt (doorgaans door op de koppeling voor afmelden te klikken). Zolang deze bestaat, is de sessie specifiek voor een afzonderlijke gebruiker, waarbij elke gebruiker een afzonderlijke sessie heeft.

Gebruik sessievariabelen om gegevens op te slaan, waartoe elke pagina in een webtoepassing toegang kan hebben. Dit kunnen zeer uiteenlopende gegevens zijn, zoals de gebruikersnaam, de gewenste tekengrootte of een vlag die aangeeft of de gebruiker zich met succes heeft aangemeld. Sessievariabelen worden ook vaak gebruikt voor het bijhouden van een lopend aantal, bijvoorbeeld het aantal vragen dat tot dusverre correct is beantwoord bij een online-quiz of de producten die de gebruiker tot dan heeft geselecteerd in een onlinecatalogus.

Sessievariabelen kunnen alleen functioneren als de browser van de gebruiker is geconfigureerd voor het accepteren van cookies. De server genereert een id-nummer voor de sessie waarmee de gebruiker op unieke wijze wordt geïdentificeerd wanneer de sessie wordt gestart, en zendt vervolgens een cookie met het id-nummer naar de browser van de gebruiker. Wanneer de gebruiker om een andere pagina op de server verzoekt, leest de server het cookie op de browser om de gebruiker te identificeren en de in het geheugen van de server opgeslagen sessievariabelen van de gebruiker op te halen.

Informatie in sessievariabelen verzamelen, opslaan en ophalen

Voordat u een sessievariabele maakt, moet u eerst de informatie die u wilt opslaan, verzamelen en deze vervolgens naar de server verzenden waar de informatie wordt opgeslagen. U kunt informatie verzamelen en naar de server verzenden met behulp van HTML-formulieren of hypertextkoppelingen met URL-parameters. U kunt ook informatie verzamelen via cookies die op de computer van de gebruiker zijn opgeslagen, via HTTP-koppen die door de browser van de gebruiker met een paginaverzoek worden verzonden of vanuit een database.

URL-parameters die worden opgeslagen in sessievariabelen, vindt u bijvoorbeeld vaak in productcatalogi. In een productcatalogus worden 'hard-coded' URL-parameters die worden gemaakt met een koppeling, gebruikt om productinformatie terug te sturen naar de server, zodat deze informatie kan worden opgeslagen in een sessievariabele. Wanneer een gebruiker op de koppeling 'Toevoegen aan winkelwagentje' klikt, wordt de product-id opgeslagen in een sessievariabele terwijl de gebruiker doorgaat met winkelen. Wanneer de gebruiker naar de betalingspagina gaat, wordt de in de sessievariabele opgeslagen product-ID opgehaald.

Een op formulieren gebaseerde enquête is een typisch voorbeeld van een pagina waarop formulierparameters worden opgeslagen in sessievariabelen. Het formulier verzendt de geselecteerde informatie terug naar de server, waar een toepassingspagina een score aan de enquête toekent en de antwoorden opslaat in een sessievariabele die moet worden doorgegeven aan een toepassing die mogelijk een totaalberekening maakt van de reacties die zijn verzameld van alle deelnemers aan de enquête. Of de informatie wordt in een database voor later gebruik opgeslagen.

Nadat er informatie naar de server is verzonden, slaat u de informatie op in sessievariabelen door de juiste code voor uw servermodel toe te voegen aan de pagina die wordt opgegeven door de URL- of formulierparameter. Wordt de doelpagina genoemd. Deze pagina wordt in het kenmerk action van het HTML-formulier of in het kenmerk href van de hypertekstkoppeling op de startpagina opgegeven.

Nadat u de waarde hebt opgeslagen in een sessievariabele, kunt u Dreamweaver gebruiken om de waarde op te halen uit sessievariabelen en deze te gebruiken in een webtoepassing. Nadat u de sessievariabele hebt gedefinieerd in Dreamweaver, kunt u de waarde ervan invoegen in een pagina.

De HTML-syntaxis hiervoor ziet er als volgt uit:

<form action="destination.html" method="get" name="myform"> </form>
<param name="href"value="destination.html">
<form action="destination.html" method="get" name="myform"> </form> <param name="href"value="destination.html">
<form action="destination.html" method="get" name="myform"> </form> 
<param name="href"value="destination.html">

Zowel de gebruiker servertechnologie als de methode die u gebruikt voor het in bezit krijgen van de informatie, bepaalt de code die wordt gebruikt voor de opslag van de informatie in een sessievariabele. De basissyntaxis voor elke servertechnologie is als volgt:

ColdFusion

<CFSET session.variable_name = value>
<CFSET session.variable_name = value>
<CFSET session.variable_name = value>

ASP

<% Session("variable_name") = value %>
<% Session("variable_name") = value %>
<% Session("variable_name") = value %>

De value-expressie is doorgaans een serverexpressie, zoals Request.Form(“lastname”). Als u bijvoorbeeld een URL-parameter met de naam product (of een HTML-formulier met de methode GET en een tekstveld met de naam product) gebruikt om informatie op te vragen, kunt u de volgende instructies geven om de informatie op te slaan in een sessievariabele met de naam prodID:

ColdFusion

<CFSET session.prodID = url.product>
<CFSET session.prodID = url.product>
<CFSET session.prodID = url.product>

ASP

<% Session("prodID") = Request.QueryString("product") %>
<% Session("prodID") = Request.QueryString("product") %>
<% Session("prodID") = Request.QueryString("product") %>

Als u een HTML-formulier met de methode post en een tekstveld met de naam txtProduct gebruikt om informatie te verzamelen, kunt u de volgende instructies geven om de informatie op te slaan in de sessievariabele:

ColdFusion

<CFSET session.prodID = form.txtProduct>
<CFSET session.prodID = form.txtProduct>
<CFSET session.prodID = form.txtProduct>

ASP

<% Session("prodID") = Request.Form("txtProduct") %>
<% Session("prodID") = Request.Form("txtProduct") %>
<% Session("prodID") = Request.Form("txtProduct") %>

Voorbeeld van in sessievariabelen opgeslagen informatie

U bent bezig met een site met een grote doelgroep van oudere gebruikers. Voeg in Dreamweaver twee koppelingen toe aan het welkomstscherm, waarmee de gebruikers de lettergrootte van de tekst op de site kunnen aanpassen. Voor grotere, beter te lezen tekst klikt de gebruiker op de ene koppeling en voor tekst van normale grootte klikt de gebruiker op de andere koppeling.

In sessievariabelen opgeslagen informatie

Elke koppeling heeft een URL-parameter met de naam fontsize waarmee de tekstvoorkeur van de gebruiker naar de server wordt gestuurd, zoals u ziet in het volgende voorbeeld van Adobe ColdFusion®:

<a href="resort.cfm?fontsize=large">Larger Text</a><br>
<a href="resort.cfm?fontsize=small">Normal Text</a>
<a href="resort.cfm?fontsize=large">Larger Text</a><br> <a href="resort.cfm?fontsize=small">Normal Text</a>
<a href="resort.cfm?fontsize=large">Larger Text</a><br> 
<a href="resort.cfm?fontsize=small">Normal Text</a>

Sla de tekstvoorkeur van de gebruiker op in een sessievariabele en gebruik deze om op elke pagina de tekstgrootte in te stellen op het verzoek van de gebruiker.

Boven aan de bestemmingspagina voert u de volgende code in om een sessie met de naam font_pref te maken waarin de voorkeur voor de tekstgrootte van de gebruiker wordt opgeslagen.

ColdFusion

<CFSET session.font_pref = url.fontsize>
<CFSET session.font_pref = url.fontsize>
<CFSET session.font_pref = url.fontsize>

ASP

<% Session("font_pref") = Request.QueryString("fontsize") %>
<% Session("font_pref") = Request.QueryString("fontsize") %>
<% Session("font_pref") = Request.QueryString("fontsize") %>

Wanneer de gebruiker op de hypertextkoppeling klikt, verzendt de pagina de tekstvoorkeur van de gebruiker in een URL-parameter naar de doelpagina. De code op de doelpagina slaat de URL-parameter op in de sessievariabele font_pref. Voor de duur van de sessie van de gebruiker halen alle pagina's van de toepassing deze waarde op en geven ze de geselecteerde tekengrootte weer.

ASP- en ColdFusion-toepassingsvariabelen

In ASP en ColdFusion kunt u toepassingsvariabelen gebruiken om informatie op te slaan en weer te geven die gedurende de levensduur van de toepassing wordt bijgehouden en die van gebruiker tot gebruiker blijft bestaan. De levensduur van de toepassing loopt vanaf het moment dat de gebruiker de eerste keer een pagina in de toepassing opvraagt, tot aan het moment waarop de webserver wordt gestopt. (Een toepassing wordt gedefinieerd als alle bestanden in een virtuele directory en de subdirectory's daarvan.)

Omdat toepassingsvariabelen blijven bestaan gedurende de hele levensduur van de toepassing, en zelfs van gebruiker tot gebruiker, zijn ze bijzonder geschikt om informatie op te slaan die voor alle gebruikers hetzelfde is, zoals de juiste tijd en datum. De waarde van de toepassingsvariabele wordt gedefinieerd in de code van de toepassing.

ASP-servervariabelen

U kunt de volgende ASP-servervariabelen definiëren als bronnen met dynamische inhoud: Request.Cookie, Request.QueryString, Request.Form, Request.ServerVariables en Request.ClientCertificates.

ColdFusion-servervariabelen

U kunt de volgende ColdFusion-servervariabelen definiëren:

Clientvariabelen

koppelen gegevens aan een specifieke client. Clientvariabelen onderhouden de status van de toepassing niet alleen wanneer de gebruiker in de toepassing van pagina naar pagina gaat, maar ook tussen sessies. 'De status onderhouden' betekent dat de informatie van de ene pagina (of sessie) tot de volgende wordt bewaard zodat de toepassing zich de gebruiker en diens vorige keuzen en voorkeuren nog herinnert.

Cookievariabelen

benaderen cookies die door de browser aan de server zijn doorgegeven.

CGI-variabelen

verschaffen informatie over de server waarop ColdFusion wordt uitgevoerd, over de browser die een pagina opvraagt, en andere informatie over de verwerkingsomgeving.

Servervariabelen

kunnen worden benaderd door alle clients en toepassingen op de server. Ze behouden hun waarde tot de server wordt gestopt.

Lokale variabelen

Gemaakt met de CFSET-tag of de CFPARAM-tag in een ColdFusion-pagina.

Krijg sneller en gemakkelijker hulp

Nieuwe gebruiker?