Overzicht van dynamische inhoudsbronnen

Laatst bijgewerkt op 25 apr. 2024
Notitie

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 waaruit je dynamische content kunt ophalen en weergeven voor gebruik op een webpagina.Bronnen van dynamische content omvatten niet alleen informatie die is opgeslagen in een databron, maar ook waarden die zijn ingediend door HTML-formulieren, waarden in serverobjecten en andere content bronnen.

Dreamweaver stelt je in staat om eenvoudig verbinding te maken met een databron en een recordset te maken waaruit je dynamische content kunt extraheren. Een recordset is het resultaat van een databasequery. Het extraheert de specifieke informatie die je opvraagt en stelt je in staat om die informatie weer te geven op een opgegeven pagina. Je definieert de recordset op basis van de informatie in de database en de content die je wilt weergeven.

Verschillende technologieleveranciers gebruiken mogelijk verschillende terminologie voor een recordset. In ASP en ColdFusion wordt een recordset gedefinieerd als een query. Als je andere bronnen van gegevens gebruikt, zoals gebruikersinvoer of servervariabelen, is de naam van de databron die is gedefinieerd in Dreamweaver hetzelfde als de naam van de databron zelf.

Dynamische websites hebben een databron nodig waaruit ze dynamische content kunnen ophalen en weergeven.Dreamweaver stelt je in staat om databronnen, aanvraagvariabelen, URL-variabelen, servervariabelen, formulier variabelen, opgeslagen procedures en andere bronnen van dynamische content te gebruiken. Afhankelijk van de databron kun je nieuwe content ophalen om aan een aanvraag te voldoen, of de pagina aanpassen om te voldoen aan de behoeften van gebruikers.

Elke contentbron die je definieert in Dreamweaver wordt toegevoegd aan de lijst van contentbronnen in het deelvenster Bindings.Vervolgens kun je de contentbron invoegen in de momenteel geselecteerde pagina.

Informatie over recordsets

Webpagina's hebben geen directe toegang tot de gegevens die zijn opgeslagen in een database.In plaats daarvan communiceren ze met een recordset. Een recordset is een subset van de informatie (records), geëxtraheerd uit de databron met behulp van een databronquery. Een query is een zoekopdracht ontworpen om specifieke informatie uit een database te vinden en te extraheren.

Wanneer je een databron gebruikt als contentbron voor een dynamische webpagina, moet je eerst een recordset maken waarin je de opgehaalde gegevens opslaat. Recordsets dienen als tussenpersoon tussen de databron waarin de content is opgeslagen en de applicatieserver die de pagina genereert. Recordsets worden tijdelijk opgeslagen in het geheugen van de applicatieserver voor snellere gegevensbewerkingen. De server verwijdert de recordset wanneer deze niet meer nodig is.

Een query kan een recordset produceren 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 applicaties echter zelden alle gegevens in een database hoeven te gebruiken, moet je ernaar streven om je recordsets zo klein mogelijk te maken.Omdat de webserver de recordset tijdelijk in het geheugen houdt, gebruikt een kleinere recordset minder geheugen en kan dit mogelijk de serverprestaties verbeteren.

Database-query's worden geschreven in Structured query Language (SQL, uitgesproken als "sequel"), een eenvoudige taal waarmee je gegevens kunt ophalen, toevoegen en verwijderen van en naar een database. Met de SQL-builder in Dreamweaver kun je eenvoudige query's maken zonder dat je SQL hoeft te begrijpen.Als je echter complexe SQL-query's wilt maken, kun je met basiskennis van deze taal geavanceerdere query's maken en beschik je over meer flexibiliteit bij het ontwerpen van dynamische pagina's.

Voordat je een recordset definieert voor gebruik met Dreamweaver, moet je een verbinding met een database maken en—als er nog geen gegevens bestaan—gegevens in de database invoeren. Als je nog geen databaseverbinding voor je site hebt gedefinieerd, raadpleeg dan het hoofdstuk over databaseverbindingen voor de servertechnologie waarvoor je ontwikkelt en volg de instructies voor het maken van een databaseverbinding.

Over URL- en formulierparameters

URL-parameters slaan opgehaalde informatie op die door gebruikers is ingevoerd. Om een URL-parameter te definiëren, maak je een formulier of hypertekstlink die de GET-methode gebruikt om gegevens te verzenden.De informatie wordt toegevoegd aan de URL van de gevraagde pagina en gecommuniceerd naar de server. Bij het gebruik van URL-variabelen bevat de query-tekenreeks een of meer naam-waarde-paren die zijn gekoppeld aan de formuliervelden. Deze naam-/waardeparen worden aan de URL toegevoegd.

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

Over sessievariabelen

Sessievariabelen laten je informatie opslaan en weergeven die wordt bijgehouden gedurende een gebruikersbezoek (of sessie). De server maakt een ander sessieobject voor elke gebruiker en houdt dit bij gedurende een bepaalde periode of totdat het object expliciet wordt beëindigd.

Omdat sessievariabelen gedurende de gebruikerssessie blijven bestaan en aanhouden wanneer de gebruiker van pagina naar pagina navigeert binnen de website, zijn ze ideaal voor het opslaan van gebruikersvoorkeuren. Sessievariabelen kunnen ook worden gebruikt voor het invoegen van een waarde in de HTML-code van de pagina, het toewijzen van een waarde aan een lokale variabele of het leveren van een waarde om een voorwaardelijke uitdrukking te evalueren.

Voordat je sessievariabelen voor een pagina definieert, moet je ze maken in de broncode. Nadat je een sessievariabele hebt gemaakt in de broncode van de web-app, kun je Dreamweaver gebruiken om de waarde op te halen en te gebruiken in een webpagina.

Hoe sessievariabelen werken

Sessievariabelen slaan informatie op (meestal formulier- of URL-parameters ingediend door gebruikers) en maken deze beschikbaar voor alle pagina's van een web-app gedurende de duur van het gebruikersbezoek. Wanneer gebruikers bijvoorbeeld inloggen op een webportaal dat toegang biedt tot e‑mail, aandelenkoersen, weersrapporten en dagelijks nieuws, slaat de web-app de inloginformatie op in een sessievariabele die de gebruiker identificeert op alle pagina's van de site. Hierdoor kan de gebruiker alleen de soorten content zien die ze hebben geselecteerd terwijl ze door de site navigeren.Sessievariabelen kunnen ook een veiligheidsmechanisme bieden door de gebruikerssessie te beëindigen als het account gedurende een bepaalde periode inactief blijft. Dit maakt ook servergeheugen en verwerkingsbronnen vrij als de gebruiker vergeet uit te loggen van een website.

Sessievariabelen slaan informatie op voor de duur van de gebruikssessie. De sessie begint wanneer de gebruiker een pagina opent binnen de applicatie en eindigt wanneer de gebruiker gedurende een bepaalde periode geen andere pagina in de applicatie opent, of wanneer de gebruiker expliciet de sessie beëindigt (meestal door op een "uitloggen"-link te klikken). Zolang deze bestaat, is de sessie specifiek voor een individuele gebruiker, en elke gebruiker heeft een separate sessie.

Gebruik sessievariabelen om informatie op te slaan waartoe elke pagina in een webapplicatie toegang heeft.De informatie kan zo divers zijn als de naam van de gebruiker, de gewenste tekengrootte of een markering die aangeeft of de gebruiker succesvol is ingelogd. Een ander veelvoorkomend gebruik van sessievariabelen is het bijhouden van een lopend totaal, zoals het aantal vragen dat tot nu toe correct is beantwoord in een online quiz, of de producten die de gebruiker tot nu toe heeft geselecteerd uit een online catalogus.

Sessievariabelen kunnen alleen functioneren als de browser van de gebruiker is ingesteld om cookies te accepteren. De server creëert een sessie-ID-nummer dat de gebruiker uniek identificeert wanneer de sessie voor het eerst wordt gestart, en stuurt vervolgens een cookie met het ID-nummer naar de browser van de gebruiker. Wanneer de gebruiker een andere pagina op de server opvraagt, leest de server de cookie in de browser om de gebruiker te identificeren en de sessievariabelen van de gebruiker op te halen die zijn opgeslagen in het geheugen van de server.

Informatie verzamelen, opslaan en ophalen in sessievariabelen

Voordat je een sessievariabele maakt, moet je eerst de informatie verkrijgen die je wilt opslaan en deze vervolgens naar de server sturen voor opslag.Je kunt informatie verzamelen en naar de server sturen met behulp van HTML-formulieren of hypertext-koppelingen die URL-parameters bevatten. Je kunt ook informatie verkrijgen uit cookies die zijn opgeslagen op de computer van de gebruiker, uit de HTTP-kopteksten die door de browser van de gebruiker worden verzonden met een paginaverzoek, of uit een database.

Een typisch voorbeeld van het opslaan van URL-parameters in sessievariabelen is een productcatalogus die hardgecodeerde URL-parameters gebruikt die zijn gemaakt met behulp van een koppeling om productinformatie terug te sturen naar de server om te worden opgeslagen in een sessievariabele. Wanneer een gebruiker op de koppeling 'Toevoegen aan winkelwagen' klikt, wordt het product-ID opgeslagen in een sessievariabele terwijl de gebruiker verder blijft winkelen. Wanneer de gebruiker doorgaat naar de afrekenpagina, wordt de product-ID opgehaald die is opgeslagen in de sessievariabele.

Een formuliergebaseerde enquête is een typisch voorbeeld van een pagina die formulierparameters opslaat in sessievariabelen.Het formulier stuurt de geselecteerde informatie terug naar de server, waar een app-pagina de enquête beoordeelt en de reacties opslaat in een sessievariabele om door te geven aan een applicatie die mogelijk de reacties van de enquêtepopulatie samenvat.Of de informatie wordt opgeslagen in een database voor later gebruik.

Nadat informatie naar de server is verzonden, sla je de informatie op in sessievariabelen door de juiste code voor je servermodel toe te voegen aan de pagina die wordt opgegeven door de URL of formulierparameter.Deze pagina wordt de doelpagina genoemd en wordt opgegeven in het actie-kenmerk van het HTML-formulier of het href-kenmerk van de hypertekstlink op de startpagina.

Nadat je een waarde in een sessievariabele hebt opgeslagen, kun je Dreamweaver gebruiken om de waarde op te halen uit sessievariabelen en deze te gebruiken in een webapplicatie.Nadat je de sessievariabele in Dreamweaver hebt gedefinieerd, kun je 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">

Zowel de gebruikte servertechnologie als de methode die je gebruikt om de informatie te verkrijgen, bepaalt de code die wordt gebruikt om de informatie op te slaan in een sessievariabele.Basissyntaxis voor elke servertechnologie is als volgt:

ColdFusion

<CFSET session.variable_name = value>

ASP

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

De waarde-expressie is meestal een server-expressie zoals Request.Form("lastname"). Als je bijvoorbeeld een URL-parameter genaamd product gebruikt (of een HTML-formulier met de GET-methode en een tekstveld genaamd product) om informatie te verzamelen, slaan de volgende instructies de informatie op in een sessievariabele genaamd prodID:

ColdFusion

<CFSET session.prodID = url.product>

ASP

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

Als je een HTML-formulier met de post-methode en een tekstveld genaamd txtProduct gebruikt om de informatie te verzamelen, dan slaan de volgende instructies de informatie op in de sessievariabele:

ColdFusion

<CFSET session.prodID = form.txtProduct>

ASP

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

Voorbeeld van informatie opgeslagen in sessievariabelen

Je werkt aan een site met een grote doelgroep van senioren. Voeg in Dreamweaver twee koppelingen toe aan het Welkomstscherm waarmee gebruikers de grootte van de tekst van de site kunnen aanpassen. Voor grotere, goed leesbare tekst klikt de gebruiker op een koppeling, en voor gewone tekst klikt de gebruiker op een andere koppeling.

In sessievariabelen opgeslagen informatie

Elke koppeling heeft een URL-parameter genaamd fontsize die de tekstvoorkeur van de gebruiker naar de server verzendt, zoals het volgende Adobe ColdFusion®-voorbeeld toont:

<a href="resort.cfm?fontsize=large">Grotere tekst</a><br>

<a href="resort.cfm?fontsize=small">Normale tekst</a>

Sla de tekstvoorkeur van de gebruiker op in een sessievariabele en gebruik het om de tekengrootte in te stellen op elke pagina die de gebruiker opvraagt.

Voer bovenaan de bestemmingspagina de volgende code in om een sessie genaamd font_pref te maken die de voorkeur voor lettergrootte van de gebruiker opslaat.

ColdFusion

<CFSET session.font_pref = url.fontsize>

ASP

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

Wanneer de gebruiker op de hyperlink klikt, verzendt de pagina de tekstvoorkeur van de gebruiker in een URL-parameter naar de bestemmingspagina. De code op de bestemmingspagina slaat de URL-parameter op in de sessievariabele font_pref. Gedurende de sessie van de gebruiker halen alle pagina's van de applicatie deze waarde op en tonen ze de geselecteerde tekengrootte.

Applicatievariabelen in ASP en ColdFusion

In ASP en ColdFusion kun je applicatievariabelen gebruiken om informatie op te slaan en weer te geven die gedurende de levensduur van de applicatie wordt bijgehouden en van gebruiker tot gebruiker behouden blijft.De levensduur van de applicatie duurt vanaf het moment dat de eerste gebruiker een pagina in de applicatie opvraagt tot het moment dat de webserver wordt gestopt.(Een applicatie wordt gedefinieerd als alle bestanden in een virtuele map en de submappen ervan.)

Omdat applicatievariabelen de levensduur van de applicatie aanhouden en van gebruiker tot gebruiker blijven bestaan, zijn ze ideaal voor het opslaan van informatie die voor alle gebruikers moet bestaan, zoals de huidige tijd en datum.De waarde van de applicatievariabele wordt gedefinieerd in de code van de applicatie.

ASP-servervariabelen

Je kunt de volgende ASP-servervariabelen definiëren als bronnen van dynamische content: 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 behouden de status van de applicatie wanneer de gebruiker van pagina naar pagina navigeert binnen de applicatie, evenals van sessie naar sessie.'Status behouden' betekent informatie bewaren van de ene pagina (of sessie) naar de volgende, zodat de applicatie de gebruiker en diens eerdere keuzes en voorkeuren onthoudt.

Cookievariabelen

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

CGI-variabelen

Bieden informatie over de server waarop ColdFusion draait, 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 blijven bestaan totdat de server wordt gestopt.

Lokale variabelen

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