Adobe Dreamweaver CS5 - PHP5
|
|
|
- Helena van den Brink
- 10 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Adobe Dreamweaver CS5 - PHP5 Ontwerpen van webapplicaties met PHP en MySQL Versie juni 2010 Adobe, Macromedia, Dreamweaver, Fireworks en Flash zijn handelsmerken of gedeponeerde handelsmerken van Adobe Systems, Inc. in de Verenigde Staten en/of andere landen. Alle overige handelsmerken en merknamen zijn eigendom van hun respectieve eigenaars. Speciale dank aan Lieve en Guy voor hun meer dan gewaardeerde medewerking. 1
2
3 Inhoud 1 Introductie Historiek Voorkennis Conventies Systeemvereisten Microsoft-Windows Mac-OS De helpfunctie Extensies Dreamweaver updates Statische en dynamische websites Statische vs. dynamische websites Statische webpagina's Statische website Dynamische webpagina's Dynamische website of Webapplicatie Ondersteunde servermodellen in Dreamweaver CS PHP Active Server Pages (ASP) ColdFusion Apache, PHP en MySQL installeren Productieserver (live server) en testserver Verborgen map of subdomein op de productieserver Lokale testserver Externe testserver Testomgeving installeren op Windows (Wampserver) Wampserver installeren Wampserver starten en stoppen Pagina's openen vanaf een ander toestel binnen het netwerk Microsoft IIS en Apache samen gebruiken Testomgeving installeren op Mac OSX (MAMP) MAMP installeren MAMP configureren Pagina's openen vanaf een ander toestel binnen het netwerk Een geschikte productieserver zoeken Bronnen Alias onder Apache Map binnen de rootfolder Map buiten de rootfolder toegankelijk maken Een alias toevoegen vanuit Wampserver Een alias (symlink) toevoegen vanuit MAMP Default homepage en Directory Browsing Lesmateriaal bij dit handboek Lesmateriaal installeren op PC Lesmateriaal installeren op Macintosh Bronnen Inhoud - 3
4 5 Dynamische website definiëren Een alias of Symlink toevoegen aan de testserver Nieuwe website definiëren in Dreamweaver Site Servers Connecteren met de testserver Nieuwe PHP-pagina aanmaken in Dreamweaver Live View en Live Code Preview in Browser Rechtstreeks openen in een browser Live View Live Code Dynamically-related files Inleiding tot PHP Syntaxis PHP-delimiters Opdracht Commentaar Het configuratiebestand php.ini Foutafhandeling Variabelen Variant Soorten variabelen Arrays Echo() en print() Operatoren Rekenkundige operatoren Vergelijkende operatoren Logische operatoren String operatoren Voorwaardelijke instructies If-else Opdracht Opdracht Verkorte if-else notatie Lussen For While do-while Foreach Functies Scoop van variabelen Globale variabelen Server Side Include Bronnen Dreamweaver CS5 - PHP5
5 7 Formulieren en superglobals Formulieren Datatype controleren en converteren Datatype controleren Datatype converteren Superglobal variabelen $_GET Opdracht $_POST Opdracht $_SERVER en $_ENV $_COOKIE $_SESSION Een sessie starten Session_id en timeout Een sessievariabele aanmaken Waarde van een sessievariabele uitlezen Sessievariabelen wissen Een sessie beëindigen Login met sessievariabelen Isset() en is_null() Variabelen: een vergelijkend overzicht Bronnen Ingebouwde PHP functies Overzicht van PHP functies Officiële PHP website Code Hints in Dreamweaver String functies Bepaal het aantal karakters in een string Zet een string om in hoofdletters/kleine letters Selecteer een aantal karakters in een string Verwijder spaties vooraan en achteraan een string Converteer een string naar een array Converteer een array naar een string Vervang één of meerdere karakters in een string Bepaal de positie van een sequentie binnen een string Vergelijk twee strings met elkaar MD5 en SHA-1 hash Magic quotes Zet alle elementen in een willekeurige volgorde Array functies Bepaal het aantal elementen in een array Sorteer een array Wis het laatste element in een array Voeg één of meerdere elementen toe aan een array Zet alle elementen in een willekeurige volgorde Inhoud - 5
6 8.4 Mathematische functies Getallen afronden Genereer een willekeurig geheel getal Bepaal de absolute waarde van een getal Getallen formatteren Datum- en tijdfuncties Huidige datum en tijd weergeven Datum en tijd formatteren als een string Datum en tijd formatteren als een string, volgens de lokale settings Bepaal de UNIX timestamp voor een bepaalde datum Haal de huidige UNIX timestamp op Bepaal de UNIX timestamp van een tekstuele datumomschrijving Tijdzone uitlezen en aanpassen Datum en getallen vertalen Definieer lokale informatie Formatteer een datum volgens de lokale settings Formatteer een getal volgens de lokale settings Reguliere expressies Basissyntaxis van reguliere expressies Letterlijke waardes of literals Metatekens Groepen en ranges Een combinatie van bepaalde karakters Een string valideren met een tekstpatroon Headerinformatie aanpassen Een pagina doorverwijzen Een pagina niet cachen Het contenttype aanpassen De niet-verwerkte broncode tonen Output bufferen Opdrachten Welkom bij PHP Maak de som De maaltafel Dobbelen Wiskundige bewerkingen Paswoordgenerator Pagina-inhoud wijzigen in functie van de tijd Rijksregisternummer Zoekmachines Bronnen Apache en PHP configuratie via.htaccess PHP eigenschappen aanpassen Gepersonaliseerde foutpagina's Bestandsindex uitschakelen Bestanden uit de index verwijderen De inhoud van een bestand afschermen Alternatieve startpagina Gebruikers blokkeren Dreamweaver CS5 - PHP5
7 9.8 Hotlinks blokkeren Paswoordbeveiliging htaccess en password.txt overzetten naar de productieserver Bronnen MySQL Database server Tabellen Primaire sleutel Database normalisatie Externe of secundaire sleutel Referentiële integriteit Kolommen indexeren Datatypen in MySQL Getallen Strings Datum en tijd Binaire data Voorgedefinieerde waardes Booleaanse waardes phpmyadmin Gebruikers beheren Een nieuwe gebruiker aanmaken Een rootpaswoord instellen (enkel op PC) Een nieuwe database aanmaken Gegevens manueel invullen Gegevens importeren Relaties leggen tussen tbl_boeken en tbl_auteurs Een database exporteren Database wissen De database overbrengen naar de productieserver Besluit Bronnen Inleiding tot SQL Virtuele map toevoegen aan de testserver Nieuwe website definiëren in Dreamweaver De database importeren Over de database De databaseconnectie Alle records uit een tabel tonen (SELECT) SQL-instructie In Dreamweaver Records sorteren (ORDER BY) SQL-instructie In Dreamweaver Specifieke kolommen uit een tabel selecteren SQL-instructie In Dreamweaver Inhoud - 7
8 11.9 Een recordset filteren op één criterium (WHERE) SQL-instructie In Dreamweaver Een recordset filteren via een zoekopdracht Een recordset filteren op meerdere criteria Gegevens aan de database toevoegen (INSERT) SQL-instructie In Dreamweaver Gegevens aanpassen (UPDATE) SQL-instructie In Dreamweaver Gegevens uit de database verwijderen (DELETE) SQL-instructie In Dreamweaver Gegevens uit twee tabellen samenvoegen (JOIN) SQL-instructie In Dreamweaver Views in MySQL In Dreamweaver Besluit Bronnen Webapplicatie: boekengids De database vernieuwen De templates Het publieke gedeelte van de website Overzichtspagina boeken (index.php) Detailpagina boeken (detail.php) Het administratieve gedeelte van de website Overzichtspagina (index.php) Een nieuwe auteur toevoegen (auteurs/index.php) Een auteur bewerken (auteurs/bewerk.php) Een auteur wissen (auteurs/wis.php) Een nieuw boek toevoegen (boeken/index.php) Een boek bewerken (boeken/bewerk.php) Een boek wissen (boeken/wis.php) De loginpagina (admin/login.php) Pagina's beveiligen Logout (logout.php) Pop-up kalender voor datumingave De kalender integreren Online HTML-editor Een eenvoudige editor (default en basic mode) Geavanceerde editor De editor integreren Website verder optimaliseren via SSI UTF-8 karakterset in PHP en MySQL De website overbrengen naar de productieserver Extra functionaliteit toevoegen Bronnen Dreamweaver CS5 - PHP5
9 13 Werken met Virtuele map toevoegen aan de testserver Nieuwe website definiëren in Dreamweaver SMTP-server Open relay Relay Authenticated Relay PHP configureren Php.ini configureren voor Windows Php.ini en SMPT-server configureren voor OSX Besluit De functie mail() Eenvoudig mailscript Meerdere geadresseerden toevoegen Mail headers De afzender wijzigen Cc en Bcc Prioriteit toekennen Opdracht met HTML-opmaak Een multipart Foutboodschappen verwerken snippets Scriptbeveiliging Form spoofing header injectie Server-side form validatie Opdracht Form processor Bronnen Webapplicatie: mailinglijst De database importeren Over de database De templates Het publieke gedeelte van de site Registratie nieuwe gebruiker (subscribe.php) Verzend registratie (subscribezend.php) Bevestiging nieuwe gebruiker (subscribebevestig.php) Bevestiging nieuwe gebruiker (subscribebevestigok.php) Gebruiker uitschrijven (unsubscribe.php) Gebruiker wissen uit de database (unsubscribewis.php) Inhoud - 9
10 14.5 Het administratieve gedeelte van de site Overzichtspagina (admin/index.php) Overzicht actieve gebruikers (admin/actief.php) Gebruikers wissen (admin/wis.php) Overzicht niet-actieve gebruikers (admin/nietactief.php) Mailing aanmaken (admin/mailing.php) Mailing verzenden (admin/zenden.php) Loginpagina (admin/login.php) Pagina's beveiligen Logoutpagina (admin/logout.php) Formulieren en mailscripts beveiligen Mogelijke uitbreidingen De website overbrengen naar de productieserver Bronnen Dynamische Spry datasets Inleiding AJAX Adobe Spry Framework for AJAX Nadelen van AJAX Spry versies Virtuele map toevoegen aan de testserver Nieuwe website definiëren in Dreamweaver De templates en include bestanden Spry datasets en Spry attributen XML dataset (database exporteren naar XML) HTML dataset HTML vs. XML dataset Extern XML-bestand integreren Bronnen Index Dreamweaver CS5 - PHP5
11 7 Formulieren en superglobals. In voorgaand hoofdstuk hebt u de basiselementen van PHP leren gebruiken. De bijbehorende oefeningen waren niet erg spectaculair. In de meeste voorbeelden en toepassingen werden variabelen verwerkt. Deze variabelen stonden altijd "hard" gecodeerd op de pagina's. Enige interactie met de gebruiker was hierdoor niet mogelijk. Dit hoofdstuk brengt daar verandering in. De pagina's worden veel dynamischer. Een gebruiker kan, via invulvelden op een formulier, waardes doorgeven aan een variabele. De applicatie zal in functie van de verzamelde gegevens de nodige bewerkingen uitvoeren. Naast variabelen die door de gebruiker worden ingegeven, kan u ook gebruik maken van sessievariabelen en cookies. De inhoud van een sessievariabele is gebonden aan één bepaalde bezoeker. Denk hierbij aan een beveiligde website. Zodra een bezoeker inlogt met zijn naam en zijn paswoord, wordt deze informatie in een sessievariabele bewaard. Elke pagina binnen de site kan de waarde van deze variabele opvragen en nagaan of de bezoeker al dan niet toegang krijgt tot een bepaalde pagina. Elke bezoeker gebruikt dezelfde sessievariabelen, maar de waarde die aan de variabele wordt toegekend, is voor elke gebruiker verschillend. U hoeft voor dit hoofdstuk geen nieuwe site te definiëren. Alle voorbeeldpagina's bevinden zich reeds in de site PHP_intro. 7: Formulieren en superglobals - 87
12 7.1 Formulieren. Formulieren vormen een belangrijk onderdeel binnen een dynamische website. Een formulier stelt de gebruiker in staat te communiceren met de webapplicatie. Dit kan gaan van het versturen van s tot het communiceren met een database (zoeken in de database, gegevens toevoegen, opvragen of aanpassen,...). De form-tag heeft twee belangrijke eigenschappen: Action: Hier komt het pad of de URL van de pagina die de verwerking van het formulier op zich neemt. Method: De manier waarop de gegevens verstuurd worden. U hebt de keuze tussen GET en POST. GET plakt alle gegevens achter de URL. Een mooi voorbeeld is Google. Zodra u op Google zoeken klikt, verschijnt de waarde van de verschillende formulierelementen achteraan de URL. De structuur van de URL is als volgt: action?naam1=waarde1&naam2=waarde2&naam3=waarde3 Action is de URL van de pagina die voor de verwerking instaat. Van elk benoemd element dat zich binnen het formulier bevindt, wordt zowel de naam van het element als de waarde die eraan wordt toegekend, doorgestuurd. Alle naam/waarde-paren worden met een ampersand van elkaar gescheiden Dreamweaver CS5 - PHP5
13 Omdat de GET-methode de waarde van elk formulierelement zichtbaar maakt in de URL, kan u de GET-methode bijvoorbeeld niet gebruiken op een loginpagina. Om veiligheidsredenen mag u het ingetypte paswoord niet zichtbaar maken in de URL. De lengte van de string is ook beperkt tot enkele honderden karakters (browserafhankelijk). Voorziet u bijvoorbeeld een commentaarveld op het formulier (textarea), dan is de GET-methode niet aangewezen om gegevens te verzenden. Stel dat een gebruiker heel wat commentaar ingeeft, dan bestaat de kans dat een deel van deze informatie verloren gaat tijdens het verzenden. De tweede methode (POST), geeft de informatie op een andere manier door. De verzonden gegevens zijn niet zichtbaar in de URL, maar komen in de HTTP-headers terecht. Afhankelijk van de methode die u kiest, gaat u het formulier op een andere manier moeten ondervragen.! Enkel de pagina die in de Action gedefinieerd staat, kan informatie uit het formulier opvragen. Voor alle daaropvolgende pagina's gaat deze informatie verloren. Wenst u deze informatie toch toegankelijk te maken voor meerdere pagina's, dan kan u deze informatie best bewaren in een sessievariabele (zie later). T U kan eventueel geen Action invullen. Bij het verzenden van dit formulier, wordt dezelfde pagina geopend. 7.2 Datatype controleren en converteren. Stel, u vraagt via een formulier een getal op om dit verder in het script te verwerken. U moet er dan ook zeker van zijn dat de gebruiker daadwerkelijk een getal heeft ingegeven voor u het script uitvoert. Binnen PHP bestaan er enkele handige functies waarmee u het datatype kan controleren en converteren naar een ander type Datatype controleren. gettype($var): geeft het datatype van $var weer: boolean (true of false), integer (geheel getal), float (kommagetal), string, array, object of null (variabele bevat geen waarde). De volgende functies geven true indien het datatype overeenstemt. is_bool($var): true indien $var een booleaanse waarde bevat. is_string($var) : true indien $var een string bevat. is_array($var) : true indien $var een array bevat. is_null($var) : true indien $var leeg is. is_object($var): true indien $var een object bevat. 7: Formulieren en superglobals - 89
14 is_int($var), is_integer($var), is_long($var) : true indien $var een geheel getal bevat. is_float($var), is_real($var), is_double($var): true indien $var een kommagetal bevat. is_numeric($var): true indien $var een getal of een numerische string bevat. De volgende functies geven true indien een variabele volgende karakters bevat. ctype_alnum($var): true indien $var enkel alphanumerische karakters bevat. ctype_alpha($var): true indien $var enkel alfabetische karakters (a..z,a...z) bevat. ctype_cntrl($var): true indien $var enkel controlekarakters (line feed, tab,...) bevat. ctype_digit($var): true indien $var enkel numerische karakters (0...9) bevat. ctype_graph($var): true indien $var enkel printbare karakters behalve spaties bevat. ctype_print($var): true indien $var enkel printbare karakters bevat. ctype_lower($var): true indien $var enkel kleine letters bevat. ctype_upper($var): true indien $var enkel hoofdletters bevat. ctype_space($var): true indien $var enkel spaties bevat. ctype_xdigit($var): true indien $var enkel hexadecimale karakters (0...9 en A...F) bevat. ctype_punct($var): true indien $var enkel leestekens bevat.» Open formulieren/ctype.php in een browser en test enkele strings Datatype converteren. settype($var,'datatype'): converteert de waarde van $var naar een nieuw datatype. Met settype() wordt altijd het datatype en daardoor ook vaak de waarde van de variabele zelf aangepast! De datatypen zijn: bool of boolean (true of false), int of integer (geheel getal), float (kommagetal), string, array, object of null (variabele bevat geen waarde meer). <?php $var = '56.74abc3'; settype($var,'float'); //$var = settype($var,'int'); //$var = 56 settype($var,'bool'); //$var = 1 settype($var,'null'); //$var heeft geen waarde meer //LET OP $var = '56.74a3'; $getal = settype($var,'float'); //$getal = 1 (omdat settype() true is) settype($var,'float'); //$var = $getal = $var; //$getal = 56.74?> Type casting: De naam van het nieuwe datatype wordt tussen haakjes voor de variabele geplaatst. Met type casting kan u het datatype van de variabele zelf wijzigen of het nieuwe datatype naar een andere variabele overbrengen. Ook hier worden dezelfde benamingen gebruikt als bij settype(). Null is hier niet toege Dreamweaver CS5 - PHP5
15 staan. <?php $var = '56.74abc3'; $var = (float) $var; //$var = $getal = (int) $var; //$getal = 56 $bool = (bool) $var; //$bool = 1?> 7.3 Superglobal variabelen. Uit vorig hoofdstuk weten we dat we variabelen als global kunnen definiëren waardoor ze zowel binnen als buiten een functie aanpasbaar zijn. PHP kent ook een aantal superglobals. Dit zijn variabelen die automatisch door PHP worden aangemaakt en altijd global zijn. Superglobals kan u in elke scoop gebruiken, bv: in het hoofdscript, binnen functies,... Volgende arrays van superglobals zijn beschikbaar: $GLOBALS: array van alle variabelen die u zelf als global definieert. $_GET en $_POST: array van alle formuliervelden die via GET of POST verzonden worden. $_COOKIE: array met gegevens die in cookies bewaard worden. $_SESSION: array met sessievariabelen. $_SERVER: array met servergegevens (servernaam, protocol,...). $_ENV: array met omgevingsvariabelen (OS, computernaam,...). $_FILES: array met gegevens over bestanden die via de browser zijn geupload. $_REQUEST: array met gegevens van de gebruikersinvoer ($_GET, $_POST, $_COOKIES en $_FILES). Een aantal waardes en hun syntaxis vindt u terug via phpinfo(), onder PHP Variables. <?php echo $_SERVER("HTTP_ACCEPT_LANGUAGE")?> geeft "nl-nl" als resultaat. 7: Formulieren en superglobals - 91
16 7.4 $_GET. Met $_GET kan u alle gegevens ophalen die achter een URL worden toegevoegd. Meestal zijn deze gegevens afkomstig van een formulier (verzonden via GET), maar het is ook mogelijk dat deze gegevens rechtstreeks op de link geprogrammeerd staan. De informatie staat altijd gegroepeerd volgens een naam/waarde-paar. U kan de waarde als volgt opvragen: <?php //De waarde van naam1 opvragen $_GET["naam1"];?>» Open formulieren/get_1.html. Deze pagina bevat een formulier met één tekstveld (getal). De inhoud van dit formulier wordt via de GET-methode verzonden naar get_2.php.» Open formulieren/get_2.php Dreamweaver CS5 - PHP5
17 get_2.php haalt de waarde van het getal op via $_GET["getal"] en plaatst deze in de variabele $tellentot. Deze variabele wordt verder op de pagina tweemaal gebruikt. Eerst wordt het totaal weergegeven en daarna volgt een for-lus die alle getallen binnen de reeks onder elkaar plaatst. De functie is_numeric() controleert of er wel degelijk een getal is ingevuld.» Test de pagina get_2.php in Live View. Voorlopig heeft deze pagina nog geen getal ontvangen ($_GET["getal"] bevat nog geen waarde, dus NULL), vandaar dat een stuk van het dynamische gedeelte leeg blijft. Om de werking te testen moet u de $_GET in Live View simuleren. Dit kan door de parameter getal achteraan de URL toe te voegen.» Voeg?getal=4 toe aan de URL.» Selecteer in het Live View Options menu: Follow Links Continuously. 7: Formulieren en superglobals - 93
18 » Voeg getal=abc toe aan de URL.! Met de optie Follow Links Continuously aangevinkt, kan u eveneens testen vanaf de pagina get_1.html.! Ontwikkelt u op een externe testserver, vergeet dan niet eerst alle aangepaste pagina's naar de testserver te kopiëren voordat u deze in de browser kan testen.» Open formulieren/get_1.html in een browser. (Er is ook een link naar deze pagina voorzien vanop de homepage.)» Test de werking van het formulier Opdracht 1. In deze toepassing gaat u beide pagina's uit het voorgaande voorbeeld combineren tot één pagina. Het statisch gedeelte (het formulier) is reeds klaar.» Open formulieren/opdracht1.php Dreamweaver CS5 - PHP5
19 De Action op de form-tag is leeg, dus de gegevens worden naar de pagina zelf verstuurd. Als eerste gaat u de teller in orde maken. In voorgaande toepassing werd de waarde van getal eerst bewaard in een variabele ($tellentot). Deze variabele werd vervolgens in het script verwerkt. U hoeft deze variabele niet te gebruiken. U kan perfect overal waar nodig $_GET['getal'] gebruiken. Om overbodig typewerk te vermijden, gaat u $_GET['getal'] bewaren in het Bindings palet.» Open het Bindings palet. (U kan alle paletten bereiken vanuit menu:window.)» Klik op het plusicoon en kies URL Variable.» Typ in het dialoogvenster: Name: getal.» Klik op OK. De variabele verschijnt in het Bindings palet. U kan deze variabele overal op de pagina plaatsen via "drag and drop".» Sleep de variabele URL: getal naar de pagina. 7: Formulieren en superglobals - 95
20 De tellerlogica gaat u volledig manueel moeten intypen.» Plaats een nieuw Code Blok op de pagina (Insert palet, rubriek PHP).» Vervolledig het script als volgt: <?php if (is_numeric()) { for ($N = 1;$N <= ;$N++) { echo "$N <br />"; } } else { echo "U hebt een ".gettype(). " ingegeven"; }?> De verwijzing naar $_GET['getal'] hoeft u niet in te typen.» Sleep $_GET['getal'] vanuit het Bindings palet naar de juiste plaats (drie maal) binnen de code Dreamweaver CS5 - PHP5
21 T U kan $_GET['getal'] op verschillende manieren aan het script toevoegen. Drag and drop: De kans op tikfouten wordt hierdoor uitgesloten. Insert: Plaats de cursor op de plaats waar u $_GET['getal'] wilt toevoegen. Selecteer getal in het Bindings palet en klik vervolgens op Insert, onderaan het palet. Typen: Typ $_GET['getal'] manueel op de juiste plaats in. Dit is het volledig script: <?php if (is_numeric($_get['getal'])) { for ($N = 1;$N <= $_GET['getal'];$N++) { echo "$N <br />"; } } else { echo "U hebt een ".gettype($_get['getal']). " ingegeven"; }?>» Bewaar de pagina en test het resultaat. Het PHP-script valideert aan de hand van is_numeric() of de gebruiker wel degelijk een getal ingeeft. Dit noemt men Server-Side validatie. Server-Side validatie wordt vaak gecombineerd met Client-Side validatie. De browser controleert aan de hand van een JavaScript of de gegevens correct zijn ingevoerd. Enkel bij een correcte ingave worden de gegevens naar de server gestuurd. Waarom tweemaal valideren? Niet elke gebruiker heeft JavaScript geactiveerd. Indien de browser niets kan valideren, zal de server alsnog foutieve waardes onderscheppen. In principe kan u best altijd aan Client-Side en aan Server-Side valideren. In de toepassingen die volgen, gaan we ons meestal beperken tot Client-Side validatie. Om aan Client-Side na te gaan of de gebruiker wel degelijk een cijfer ingeeft, maakt u gebruik van JavaScript. In tegenstelling tot de meeste JavaScripts, vindt u deze validatie niet terug in het Behaviors palet, maar wel onder de objecten (rubriek Spry of rubriek Forms). Met Spry Widgets kan u momenteel zes soorten formulierelementen controleren, namelijk: tekstvelden, textarea's, checkboxen, radiobuttons, paswoorden en selectielijsten. Afhankelijk van het te controleren formulierelement en het te testen patroon (patronen enkel voor tekstvelden), kunnen we twee, drie of vier toestanden controleren. Bij elke toestand kan u desgewenst een foutboodschap toevoegen. 7: Formulieren en superglobals - 97
22 De mogelijke toestanden zijn: Initial state. De beginwaarde van het veld bij het openen van de pagina of tijdens het resetten van het formulier. Required state. Indien het veld niet leeg mag zijn. Invalid Format state. De ingegeven waarde voldoet niet aan het gewenste patroon. Valid state. Er is een geldige waarde ingegeven. Om aan de verschillende toestanden een foutboodschap toe te voegen, selecteert u de gewenste toestand in het Properties palet. In onze toepassing moet het tekstveld een geheel getal bevatten. Afhankelijk van de ingevulde waarde, gaat u tijdens het verzenden van het formulier de waarde controleren. Enkel in de Valid state worden de gegevens verzonden. In de toestanden Required state en Invalid Format state, wordt een foutboodschap getoond.» Selecteer het tekstveld getal.» Voeg het object Spry Validation Text Field toe (Insert palet, rubriek Spry).» Selecteer Sprytextfield1. De eigenschappen in het Properties palet zijn vrij intuïtief.» Vink in het Properties palet de optie Required aan Dreamweaver CS5 - PHP5
23 In het menu Type vindt u een aantal voorgedefinieerde tekstpatronen waaronder een geheel getal (Integer).» Selecteer Type: Integer.» Selecteer Preview states: Required.» Wijzig de foutboodschap in Gelieve een getal in te vullen.» Selecteer Preview states: Invalid Format.» Wijzig de foutboodschap in Enkel gehele getallen invullen.» Bewaar de pagina. Dreamweaver kopieert nu twee bestanden in de (nieuwe) map SpryAssets. SpryValidationTextField.js. Dit bestand bevat het JavaScript dat de validatie uitvoert. SpryValidationTextField.css. Hierin worden de vorm- en kleureigenschappen van het tekstveld en de verschillende foutboodschappen bewaard. Deze eigenschappen kan u desgewenst wijzigen vanuit het CSS palet.» Test het resultaat. 7: Formulieren en superglobals - 99
24 Laat ons de gegenereerde code bekijken. <head>... <script src="../spryassets/spryvalidationtextfield.js" type="text/javascript"></script> <link href="../spryassets/spryvalidationtextfield.css" rel="stylesheet" type="text/css" /> </head>... <span id="sprytextfield1"> <input name="getal" type="text" id="getal" value="" size="10" /> <span class="textfieldrequiredmsg">gelieve een getal in te vullen.</span> <span class="textfieldinvalidformatmsg">enkel gehele getallen invullen. </span> </span>... <script type="text/javascript"> <!-- var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "integer"); //--> </script> </body> In het headgedeelte staat een verwijzing naar het JavaScriptbestand en naar het CSSbestand. Het tekstveld getal wordt omsloten door de span-tag sprytextfield1. Achter het tekstveld komen de verschillende foutboodschappen. Elke foutboodschap wordt opnieuw omsloten door een span-tag. De bijbehorende class bevat de CSS-eigenschappen die we dadelijk gaan aanpassen. Net voor het sluiten van de body-tag, wordt het id van de eerste span-tag aan het JavaScript gekoppeld. U kan de CSS-eigenschappen van het tekstveld en van de verschillende toestanden rechtstreeks vanuit het CSS Styles palet aanpassen. De namen van de classes spreken meestal voor zich. Indien u het CSS-bestand opent in Dreamweaver, krijgt u wat extra informatie over de verschillende classes Dreamweaver CS5 - PHP5
25 » Open SpryValidationTextField.css.» Sluit SpryValidationTextField.css.» Pas eventueel wat eigenschappen aan vanuit het CSS Styles palet.» Open opdracht1.php opnieuw in een browser en test het resultaat.! Vergeet de map SpryAssets niet naar de productieserver te kopiëren. Meer informatie over de verschillende validatiewidgets vindt u op (laatste release) of onder menu:help:spry Framework Help.! Hou er wel rekening mee dat de laatste release waarschijnlijk extra mogelijkheden biedt dan versie 1.6.1, de versie die in Dreamweaver geïntegreerd is. Indien u de pagina voor de eerste maal raadpleegt, verschijnt de tekst Tellen van 1 tot. Deze tekst is op dit moment niet relevant. Er is momenteel nog geen getal doorgestuurd. U kan deze tekst verbergen door een if-instructie aan de pagina toe te voegen. Indien $_GET['getal'] een waarde bevat, wordt de tekst zichtbaar en wordt het bijbehorend script uitgevoerd (dit komt binnen het if-blok). Indien $_GET['getal'] geen waarde bevat, wordt de tekst niet zichtbaar en het script hoeft ook niet uitgevoerd te worden. 7: Formulieren en superglobals - 101
26 » Plaats de cursor voor de zin Tellen van 1 tot en klik op het if-object (Insert palet, rubriek PHP).» Vervolledig het script: <?php if ($_GET) {?>» Sleep de PHP-code net voor de h1-tag.» Plaats de cursor voor de hr-tag.» Plaats hier een nieuw code-blok en sluit het if-blok af. <?php }?>» Bewaar de pagina en test het resultaat.! De If-functie wordt uitgevoerd indien de voorwaarde true (waar) is. In de code die u zonet hebt toegevoegd, staat blijkbaar nergens een vergelijking, enkel een verwijzing naar $_GET. $_GET is true indien het formulier verzonden wordt. Nog één aanpassing en de oefening is klaar. Telkens u een nieuwe waarde ingeeft en verzendt, wordt het invulveld getal opnieuw leeg gemaakt. U gaat de pagina zodanig aanpassen dat de vorige waarde terug in het tekstveld verschijnt. U maakt hiervoor gebruik van de Initial Value van het tekstveld. In deze toepassing is dit geen vaste waarde, maar een dynamische waarde die afkomstig is van $_GET['getal'] Dreamweaver CS5 - PHP5
27 » Selecteer het tekstveld getal.» Klik vanuit het Properties palet op het Bind to Dynamic Source-icoon ( ) dat achter Init val staat.» Selecteer URL getal en klik op OK. Dit is het resultaat: T U kan $_GET['getal'] natuurlijk ook manueel intypen of via de Bindknop, onderaan het Bindings palet, aan de Initial Value toekennen. Het kan zelfs nog makkelijker. Sleep URL getal vanuit het Bindings palet naar het tekstveld op de pagina.» Bewaar de pagina en test het resultaat.» Bewaar en sluit de pagina. 7: Formulieren en superglobals - 103
28 7.5 $_POST. Met $_POST kan u alle informatie uit een formulier, dat verzonden wordt via POST, ophalen.» Open formulieren/post_1.html. Deze pagina bevat een formulier met één tekstveld (naam). De inhoud van dit formulier wordt via de POST-methode verzonden naar post_2.php.» Open formulieren/post_2.php. De inhoud van de variabele naam wordt via $_POST['naam'] opgevraagd en vervolgens op de pagina getoond.» Bekijk het resultaat.» Sluit de pagina Opdracht 2. In deze toepassing gaat u beide pagina's uit voorgaand voorbeeld combineren tot één pagina. Het statisch gedeelte van de pagina is reeds klaar.» Open formulieren/opdracht2.php.» Kies Form Variable uit het Bindings palet.» Geef als Name naam in Dreamweaver CS5 - PHP5
29 » Sluit de Query Builder.» Maak een Dynamic Table aan.» Bewaar de pagina en test het resultaat.» Sluit de pagina Een recordset filteren op één criterium (WHERE). Indien u een zoekfunctie op uw site integreert, gaat u niet alle records opvragen, maar enkel de records die aan een bepaald criterium voldoen. Op de query wordt een filter toegepast. Eerst gaat u op een vaste waarde filteren. Hiervoor gebruikt u de WHERE-instructie. In de volgende oefening gaat u een dynamisch filter toevoegen. De gebruiker geeft een zoekterm in via een formulier. De recordset wordt vervolgens gefilterd op de waarde van deze zoekterm. U kan volgende voorwaardes in een filter integreren: SQL Dreamweaver (in Simple mode) Gelijk aan = = Groter dan > > Kleiner dan < < Groter of gelijk aan >= >= Kleiner of gelijk aan <= <= Niet gelijk aan <> <> bevat LIKE Contains, begins with of ends with SQL-instructie. SELECT kolom1, kolom2,... FROM tabel WHERE voorwaarde Selecteer titel, omschrijving en prijs uit de tabel tbl_boeken. De titel moet de letters dream bevatten. SELECT titel, omschrijving, prijs FROM tbl_boeken WHERE titel LIKE %dream% T Het %-teken voor en achter dream geeft aan dat zowel voor als na dream nog andere letters of woorden mogen voorkomen. (% stelt het jokerteken binnen MySQL voor.) 11: Inleiding tot SQL - 201
30 Moet het woord beginnen met dream, dan schrijft u: SELECT titel, omschrijving, prijs FROM tbl_boeken WHERE titel LIKE dream% Moet het woord eindigen op dream, dan schrijft u: SELECT titel, omschrijving, prijs FROM tbl_boeken WHERE titel LIKE %dream In Dreamweaver.» Open sql/filter1.php.» Maak in Simple mode een nieuwe recordset rsboeken aan.» Selecteer titel, omschrijving en prijs.» Ga na of Titel de letters dream bevat.» Sluit de Query Builder.» Maak een Dynamic Table.» Bewaar de pagina en test het resultaat. Experimenteer met verschillende zoektermen.» Sluit de pagina Dreamweaver CS5 - PHP5
31 11.10 Een recordset filteren via een zoekopdracht.» Open sql/zoektitel.php. Op de pagina staat reeds een formulier. Het formulier bevat één tekstveld (zoekterm) en wordt via GET verstuurd naar de pagina zelf (Action is leeg). Het filter dat u in de recordset gaat inbouwen, test of de waarde die de gebruiker invult, voorkomt in titel. Het formulier wordt verzonden via GET, vandaar dat u filtert op $_GET['zoekTerm']. In de Recordset Builder wordt $_GET voorgesteld als URL Parameter.» Maak, in Simple mode, een nieuwe recordset rsboeken aan.» Selecteer isbn, titel en prijs.» Filter titel op URL parameter contains zoekterm.» Vervolledig het filter. 11: Inleiding tot SQL - 203
32 » Ga naar Advanced mode. Merk op dat Dreamweaver in de query een variabele (colname) gebruikt. Deze variabele kan twee toestanden aannemen. Run-time value: gebruikt de waarde die door de gebruiker wordt ingegeven in het tekstveld zoekterm. Default value: wordt de pagina voor de eerste maal geopend, dan ontbreekt $_GET['zoekTerm']. Op dat moment wordt de Default value gebruikt als waarde voor de variabele colname. Standaard krijgt deze de waarde -1. Indien u de pagina de eerste keer opent, gaat de query alle titels ophalen waar een -1 in voorkomt. Wenst u dadelijk alle opleidingen te tonen, vervang de Default value dan door "%". Wenst u geen opleidingen te tonen, vervang de Default value dan door een waarde die zeker in geen enkele titel voorkomt, bijvoorbeeld xxxxxx.» Klik op Edit en vervang de Default value door %.» Sluit de Query Builder.» Plaats onder de form-tag een Dynamic Table die alle records toont, onder het formulier.» Bewaar de pagina en test de zoekfunctie in een browser Dreamweaver CS5 - PHP5
33 Meestal wordt de laatste zoekterm opnieuw in het tekstveld getoond.» Voeg, vanuit het Bindings palet, de URL Variable zoekterm toe.» Sleep de variabele zoekterm vanuit het Bindings palet op het tekstveld.» Bewaar de pagina en test de zoekfunctie opnieuw in een browser Een recordset filteren op meerdere criteria. In deze toepassing gaat u na of de zoekterm in de titel of in het ISBN-nummer van een boek voorkomt.» Open de recordset rsboeken in Advanced mode.» Vervang: WHERE titel LIKE %colname% door: WHERE titel LIKE %colname% OR isbn LIKE %varisbn% 11: Inleiding tot SQL - 205
34 » Voeg een nieuwe parameter varisbn toe. (Klik op het plusicoon.) Name: varisbn Type: Text Default value: % Value: $_GET['zoekTerm']» Sluit de recordset.» Bewaar de pagina en test het resultaat in een browser. T Met OR (of-functie) geeft u aan dat één van de voorwaardes waar moet zijn. Met AND (en-functie) moet aan alle voorwaardes voldaan zijn.» Sluit de pagina Dreamweaver CS5 - PHP5
35 11.12 Gegevens aan de database toevoegen (INSERT). Met de INSERT-instructie kan u gegevens aan de database toevoegen SQL-instructie. INSERT INTO tabel (kolom1,kolom2,...) VALUES (waarde1,waarde2,...) Voeg een nieuwe auteur aan tbl_auteurs toe. INSERT INTO tbl_auteurs (naam, ) VALUES ('demo','[email protected]')! Merk op dat u geen waarde aan auteurid toekent. Het ID wordt automatisch door MySQL aangemaakt In Dreamweaver. In Dreamweaver gaat u maar zelden op bovenstaande manier gegevens aan een database toevoegen. Meestal maakt u gebruik van een formulier. De waardes die u in het formulier ingeeft, worden aan de tabel toegevoegd.» Open sql/insert.php.» Sleep het Record Insertion Form Wizard-object ( ) vanuit het Insert palet (rubriek Data) naar de pagina.» Maak een koppeling met tbl_auteurs. Alle kolommen uit de tabel verschijnen onder Form fields in de lijst.» Wis auteurid uit de lijst.» Zodra de gegevens aan de database zijn toegevoegd, gaat u automatisch terug naar insert.php. 11: Inleiding tot SQL - 207
36 Om na te gaan of de gegevens daadwerkelijk aan de database zijn toegevoegd, gaat u onderaan de pagina een overzicht van alle auteurs tonen.» Voeg onder de titel Toon alle auteurs een Dynamic Table toe.» Klik op Create a Recordset.» Maak een nieuwe recordset die alle gegevens over alle auteurs bevat. Sorteer op naam.» Toon vervolgens alle records uit de recordset die u zonet hebt aangemaakt Dreamweaver CS5 - PHP5
37 » Bewaar de pagina en test het resultaat in een browser Gegevens aanpassen (UPDATE). Om gegevens aan te passen en ook om gegevens te wissen, gebruikt u altijd twee pagina's. Op de eerste pagina toont u een overzicht van alle records. Per record voorziet u een link naar de pagina waar u de gegevens gaat aanpassen/wissen. Met de link stuurt u eveneens het ID mee van het record dat u gaat aanpassen/wissen. Deze ID wordt meestal via de URL meegestuurd. In deze toepassing gaat u eerst de gegevens van een auteur aanpassen SQL-instructie. UPDATE tabel SET (kolom1=waarde1,kolom2=waarde2,...) WHERE voorwaarde Pas de naam en het mailadres van auteurid = 1 aan: UPDATE tbl_auteurs SET (naam='demo', ='[email protected]') WHERE auteurid = 1! Merk op dat u auteurid niet kan aanpassen. 11: Inleiding tot SQL - 209
38 In Dreamweaver. De overzichtspagina hebt u reeds aangemaakt op insert.php. U moet enkel nog de links toevoegen naar pagina's waar u de gegevens gaat aanpassen/wissen.» Plaats, op de pagina insert.php, de cursor achter het woord .» Voeg achteraan de tabel een nieuwe kolom toe. Klik rechts (snelmenu) in de cel en kies Table:Insert Rows or Columns.» Maak de tabel iets breder.» Typ in de nieuwe cel de woorden Bewerk - Wis. Let op dat u de tekst in de juiste cel typt.» Selecteer het woord Bewerk.» Voeg de Server Behavior Go To Detail Page toe.» Blader naar update.php en stuur auteurid als parameter mee.» Selecteer het woord Wis.» Voeg opnieuw de Server Behavior Go To Detail Page toe.» Blader naar delete.php en stuur ook nu auteurid als parameter mee Dreamweaver CS5 - PHP5
39 » Bewaar en sluit de pagina.» Open sql/update.php.» Sleep het Record Update Form Wizard-object ( ) vanuit het Insert palet (rubriek Data) naar de pagina.» Klik op Create a Recordset.» Maak een nieuwe recordset rsauteur. Filter op URL Parameter = auteurid.» Klik op OK.» Maak vervolgens een koppeling met tbl_auteurs. Alle kolommen uit de tabel verschijnen als Form Fields in de lijst.» Wis auteurid uit de lijst.» Zodra de gegevens zijn aangepast, gaat u automatisch terug naar insert.php. 11: Inleiding tot SQL - 211
40 » Sluit het dialoogvenster en bewaar de pagina.» Test de updatepagina.! Om de updatepagina te testen opent u insert.php in een browser Gegevens uit de database verwijderen (DELETE). Met de DELETE-instructie kan u een record uit de tabel wissen SQL-instructie. DELETE FROM tabel WHERE voorwaarde Wis de auteur met auteurid = 7 uit de database: DELETE FROM tbl_auteurs WHERE auteurid = In Dreamweaver. Net zoals bij een updatepagina gaat u eerst alle auteurs tonen en per auteur een link voorzien naar de deletepagina. Samen met de link wordt auteurid als parameter meegestuurd. De deletelink (Wis) hebt u reeds op insert.php aangemaakt. Op insert.php geeft u al aan welke auteur u wenst te wissen. Op delete.php wordt er helemaal geen interactie meer verwacht van de gebruiker. Het auteurid is reeds gekend, waardoor de wisoperatie dadelijk kan uitgevoerd worden. Voor de updatepagina in voorgaande toepassing is wel een interactie nodig van de gebruiker. De gebruiker moet immers eerst een nieuwe naam of een nieuw mailadres ingeven voordat de update wordt uitgevoerd Dreamweaver CS5 - PHP5
41 » Open sql/delete.php.» Voeg het Server Behaviors Delete Record toe.» Vervolledig als volgt: (Laat After deleting, go to: leeg.)» Klik op OK.» Bewaar de pagina.! Wis geen auteurs die reeds op voorhand in de database aanwezig waren, maar wis enkel auteurs die u zelf hebt aangemaakt. Er bestaat een referentiële integriteit tussen tbl_auteurs en tbl_boeken. Indien u een auteur wist, worden automatisch ook alle boeken van deze auteur gewist. Alle auteurs die reeds in de database aanwezig waren, zijn allemaal verbonden met één of meerdere boeken. Om de updatepagina te testen opent u insert.php in een browser.» Test de deletepagina. T Zodra een auteur uit de tabel gewist wordt, moet u de link op delete.php volgen om terug op de overzichtspagina terecht te komen. U kan eventueel After deleting, go to: insert.php invullen, waardoor u automatisch op de overzichtspagina terecht komt Gegevens uit twee tabellen samenvoegen (JOIN). In een goed database-ontwerp zijn alle tabellen zodanig geoptimaliseerd dat gegevens over meerdere tabellen worden opgesplitst. Ook in onze database is dit zo. De tabellen tbl_auteurs en tbl_boeken horen bij elkaar. Zo bevat tbl_boeken alle informatie over een bepaald boek, maar over de auteur is enkel het auteurid beschikbaar. AuteurID is niet meer dan een getal dat voor de gebruiker totaal niets zegt over wie er achter dat ID schuilgaat. Op een pagina waar u alle informatie over één boek toont, gaat u dus nooit het auteurid tonen, maar wel de naam en het mailadres van de auteur in kwestie. U gaat dus beide tabellen via een query samenvoegen (JOIN) tot één virtuele tabel. 11: Inleiding tot SQL - 213
42 Er bestaan verschillende soorten joins. Meestal gaat het om een INNER JOIN. Hierbij worden records uit twee of meer tabellen samengevoegd op basis van gelijke waarden tussen één of meerdere velden in deze tabellen SQL-instructie. U kan een INNER JOIN op verschillende manieren opbouwen. De meest gebruikte en makkelijkst te begrijpen instructie is: SELECT * FROM tabel1, tabel2 WHERE tabel1.kolomx = tabel2.kolomy Volgende instructie geeft hetzelfde resultaat, maar is iets moeilijker te begrijpen. SELECT * FROM tabel1 INNER JOIN tabel2 ON tabel1.kolomx = tabel2.kolomy Maak een recordset die de titel van een boek bevat, samen met de naam en het mailadres van de auteur. SELECT tbl_boeken.titel, tbl_auteurs.naam, tbl_auteurs. FROM tbl_boeken, tbl_auteurs WHERE tbl_boeken.auteurid = tbl_auteurs.auteurid T Indien een kolomnaam niet in beide tabellen voorkomt, mag u de tabelnaam weglaten. Volgende instructie is dus ook geldig: SELECT titel, naam, FROM tbl_boeken, tbl_auteurs WHERE tbl_boeken.auteurid = tbl_auteurs.auteurid In Dreamweaver. Gegevens uit meerdere tabellen samenvoegen, kan u enkel in Advanced mode.» Open sql/join.php.» Maak een nieuwe recordset (rsboeken) met volgende instellingen: Dreamweaver CS5 - PHP5
43 » Bewaar de recordset.» Maak een Dynamic Table.» Bewaar de pagina en test het resultaat Views in MySQL5. De query voor deze toepassing is relatief eenvoudig. Voor complexe query's biedt Dreamweaver u weinig of geen hulpmiddelen. U zal een groot gedeelte van de query manueel moeten intypen. In MySQL5 of hoger kan u eveneens query's (views) bewaren. Een view is niet meer dan een virtuele tabel, gebaseerd op een SELECT statement. U gaat nu de query uit het voorbeeld bewaren in MySQL en vervolgens gebruiken binnen Dreamweaver. 11: Inleiding tot SQL - 215
44 » Open phpmyadmin.» Selecteer de database boekengids en klik op het tabblad SQL.» Voer onderstaand script uit: CREATE OR REPLACE VIEW view_auteur_boek AS SELECT titel, naam, FROM tbl_boeken, tbl_auteurs WHERE tbl_boeken.auteurid = tbl_auteurs.auteurid U kan hiervoor het script dat we net in Dreamweaver hebben aangemaakt kopiëren en verder aanvullen.» Klik op Start om het script uit te voeren.» Selecteer view_auteur_boek en klik op het tabblad Verkennen om het resultaat van de query te bekijken Dreamweaver CS5 - PHP5
45 In Dreamweaver. In Dreamweaver kan u de views die u in MySQL hebt aangemaakt, rechtstreeks gebruiken vanuit Simple mode.» Selecteer alle Server Behaviors en klik op het minteken. Alle Server behaviors worden gewist, maar er blijft nog wel een lege tabel op de pagina staan.» Wis de tabel die op de pagina is achtergebleven.» Maak een nieuwe recordset aan.» Selecteer als tabel view_auteur_boek. 11: Inleiding tot SQL - 217
46 » Bewaar de recordset.» Maak een Dynamic Table.» Bewaar en sluit de pagina.» Test het resultaat in een browser. T Bepaalde GUI's voor MySQL, zoals Navicat en MySQL Turbo Manager, zijn in staat om volledig visueel views te creëren. In phpmyadmin moet u het SQL statement zelf intypen Dreamweaver CS5 - PHP5
47 ! Het overbrengen van lokale views naar de productieserver is niet evident. Vaak hebt u op de productieserver onvoldoende rechten om via een SQL-dump de views rechtstreeks te importeren en zal u de views dus manueel opnieuw moeten aanmaken. Omwille van deze beperking gaan we verder in de cursus geen views meer gebruiken Besluit. In dit hoofdstuk werden enkele basis SQL-instructies besproken die u regelmatig gaat gebruiken tijdens de volgende hoofdstukken. Een volledig overzicht van alle SQL-instructies zou ons te ver leiden. In de bronnenlijst vindt u nog enkele interessante links die u verder op weg helpen Bronnen. MySQL kennisbronnen mysql/ Interactieve SQL-cursus W3schools.com Initiatie SQL : Inleiding tot SQL - 219
48 220 - Dreamweaver CS5 - PHP5
49 12 Webapplicatie: boekengids. In deze toepassing gaat u de boekengids in een website integreren. De applicatie bevat twee grote blokken. Het publieke gedeelte. In het publieke gedeelte van de site krijgt de gebruiker een beknopt overzicht van alle boeken die in de database aanwezig zijn. Bij elk boek hoort een link die de gebruiker naar een detailpagina brengt. Op de detailpagina verschijnt ondermeer een volledige inhoud van het desbetreffende boek. Het administratieve gedeelte. In het administratieve gedeelte kan de beheerder auteurs en boeken aan de database toevoegen, wissen en de gegevens wijzigen. Het administratieve gedeelte wordt volledig afgeschermd met een login en een paswoord.! Voor deze applicatie is het administratieve gedeelte vanop elke pagina toegankelijk via de loginknop, bovenaan de pagina. Dit vergemakkelijkt het testen van de site. In een "echte" webapplicatie wordt het administratieve gedeelte meestal achter een verborgen URL geplaatst. U hoeft voor dit hoofdstuk geen nieuwe site te definiëren. U werkt verder aan de website PHP_Boekengids (zie hoofdstuk 11). Alle oefenbestanden bevinden zich in de map site_ontwerp. In de map site_klaar vindt u de afgewerkte versie van de site De database vernieuwen. In voorgaande hoofdstukken hebt u met de database boekengids gewerkt. Voor deze toepassing gaat u de oude database vervangen door een nieuwe versie. De nieuwe versie bevat nog een derde tabel met daarin de logingegevens van de site.» Open phpmyadmin in een browser.» Open de database boekengids.» Verwijder de view view_auteur_boek.» Verwijder de tabellen tbl_boeken en tbl_auteurs (in deze volgorde!). 12: Webapplicatie: boekengids - 221
50 » Klik vervolgens op Import en blader naar: Les DreamweaverCS5 PHP/PHP_boekengids/database/boekengids_hst12.sql.» Klik onderaan rechts op Start om de query uit te voeren. De database bevat nu drie tabellen. tbl_boeken en tbl_auteurs staan met elkaar in relatie via auteurid. De derde tabel, tbl_login_boekengids, bevat de login en het paswoord voor de beveiligde pagina's. Om veiligheidsredenen staan de paswoorden met een MD5-hash gecodeerd in de database Dreamweaver CS5 - PHP5
51 12.2 De templates. De site bevat twee templates. De template basis.dwt.php wordt gebruikt voor de oefensite waaraan u werkt. Alle pagina's zijn reeds gekoppeld aan deze template. De tweede template, basis_klaar.dwt.php, dient als basis voor de afgewerkte versie van de site Het publieke gedeelte van de website. Het publieke gedeelte van de website bevat maar twee pagina's. index.php. Op deze pagina wordt een kort overzicht van de boeken getoond. Verder vindt u op deze pagina een zoekfunctie. detail.php. De gebruiker kan vanaf de defaultpagina een boek aanklikken en krijgt op deze pagina alle details over het boek te zien Overzichtspagina boeken (index.php).» Open index.php. U gaat de pagina stelselmatig opbouwen. Eerst worden alle boeken getoond op deze pagina. Daarna wordt de zoekfunctie uitgewerkt. De overzichtspagina bevat volgende gegevens over een boek: de titel van het boek, de auteur, het ISBN-nummer en een aanwijzing of het boek al dan niet in stock is. Omdat ook de naam van de auteur op de pagina getoond wordt, kan u tbl_boeken niet gebruiken. Hierin staat enkel auteurid vermeld en niet de naam van de auteur. De naam halen we op via een join van tbl_boeken en tbl_auteurs.» Maak vanuit het Server Behaviors palet of vanuit het Bindings palet een nieuwe recordset rsboeken aan.» Selecteer de kolommen boekid, isbn, titel en instock.» Sorteer de recordset op titel. 12: Webapplicatie: boekengids - 223
52 » Ga naar Advanced mode en pas de query verder aan: selecteer naam van de tabel tbl_auteurs en maak een join tussen tbl_boeken.auteurid en tbl_auteurs.auteurid. SELECT boekid, isbn, titel, instock, naam FROM tbl_boeken, tbl_auteurs WHERE tbl_boeken.auteurid = tbl_auteurs.auteurid ORDER BY titel ASC» Klik op Test om het resultaat van de query te bekijken Dreamweaver CS5 - PHP5
53 » Sleep de kolomnamen vanuit het Bindings palet naar de tweede rij binnen de tabel.» Test de pagina in Live View. Voorlopig wordt enkel de eerste record uit de recordset getoond.» Verlaat Live View.» Selecteer de onderste rij van de tabel (tr-tag).» Voeg de Server Behavior Repeat Region toe. Toon alle records.» Test de pagina opnieuw in Live View. 12: Webapplicatie: boekengids - 225
54 Indien het boek in stock is, verschijnt de waarde 1 in de tabel. Laat ons deze tekst veranderen in Ja of in Neen indien het boek niet in stock is.» Verlaat Live View.» Selecteer {rsboeken.instock} in de tabel.» Open de pagina in Code view.» Vervang: <td> <?php echo $row_rsboeken['instock'];?> </td> door: <td> <?php echo ($row_rsboeken['instock'] == 1)? 'Ja' : 'Neen';?> </td>! Vergeet het dubbele =-teken niet.» Bekijk het resultaat in Live View Dreamweaver CS5 - PHP5
55 Voorlopig bevat de database maar 18 boeken. Voor een uitgebreide boekenlijst laat u per pagina maar een gedeelte van de lijst zien en plaatst u onderaan de pagina een navigatiebalk.» Verlaat Live View.» Open de Server behavior Repeat Region (rsboeken).» Zet het aantal gelijktijdig getoonde records op 5.» Plaats de cursor onder de tabel met boeken.» Voeg het Recordset Navigatie Bar-object (rubriek: Data) toe.» Maak gebruik van tekstlinks.» Bewaar de pagina en test het resultaat in een browser.! U kan de navigatie niet testen vanuit Live View, vandaar dat u de pagina opent in een browser. De standaardnavigatiebalk die Dreamweaver genereert, komt niet erg professioneel over. U gaat de standaardnavigatiebalk door een ander navigatiesysteem vervangen. t Dreamweaver heeft met zijn navigatiebalk nogal wat Server Behaviors toegevoegd. De snelste methode om deze te wissen, is door gebruik te maken van het History palet.» Open het History palet (menu:window:history).» Sleep het pijltje tot net BOVEN de laatste handeling. 12: Webapplicatie: boekengids - 227
56 » Plaats de Server Behavior mediatafel:rsnavigationbar onder de tabel.! Het navigatiescript bevindt zich in de map mtinclude. Vergeet dit bestand niet te uploaden naar de productieserver.» Bewaar de pagina en test het resultaat in een browser. Nu gaat u de zoekfunctie implementeren.» Selecteer de form-tag. Laat de Action leeg en zet Method op GET. De waarde van het tekstveld zoekterm en keuze uit het selectiemenu instock worden via GET aan de URL toegevoegd Dreamweaver CS5 - PHP5
57 We gaan na of zoekterm in de titel van een boek voorkomt en of het boek al dan niet in stock is. Merk op dat het keuzemenu instock drie waarden bevat. Naast Ja en Neen kan u ook n.v.t. (niet van toepassing) kiezen. Bij n.v.t. worden alle boeken die aan zoekterm voldoen, getoond. Onafhankelijk of de boeken wel of niet in stock zijn. U gaat de zoekfunctie in twee stappen toevoegen. Eerst gaat u testen of zoekterm in de titel voorkomt. Daarna wordt de zoekfunctie uitgebreid met instock.» Open de recordset rsboeken.» Pas het filter aan en test of zoekterm in de titel voorkomt. SELECT boekid, isbn, titel, instock, naam FROM tbl_boeken, tbl_auteurs WHERE tbl_boeken.auteurid = tbl_auteurs.auteurid AND titel LIKE %vartitel% ORDER BY titel ASC» Klik op het +-icoon naast Parameters en voeg de parameter vartitel toe. Gebruik als Type: Text, Default value: % en als Runtime value: $_GET['zoekTerm']. 12: Webapplicatie: boekengids - 229
58 De eerste maal dat men de pagina opent in een browser worden alle records getoond (Default value = %). Na het verzenden van het formulier, wordt de waarde uit het tekstveld zoekterm als filter gebruikt (Runtime value = $_GET['zoekTerm']).» Bewaar de recordset.» Bewaar de pagina en test de zoekfunctie. Om na te gaan of een boek al dan niet in stock is, gaat u eerst de logica achter deze functie bestuderen.» Open de recordset rsboeken en klik op Test. Een boek dat in stock is, bevat de waarde 1 in instock. Is een boek niet in stock, dan bevat deze kolom de waarde 0.» Pas de WHERE-instructie van de query als volgt aan: WHERE tbl_boeken.auteurid = tbl_auteurs.auteurid AND titel LIKE %vartitel% AND instock LIKE varinstock De waarde in kolom instock wordt vergeleken met de waarde van de variabele varinstock.» Voeg de variabele varinstock toe. De Value is afkomstig van de URL parameter instock. De Default Value is %. Gebruik het Type Text Dreamweaver CS5 - PHP5
59 Ook het keuzemenu in het formulier moet de waardes %, 1 en 0 bevatten.» Sluit de recordset.» Bewaar de pagina en test de volledige zoekfunctie in een browser. Na elke zoekactie moet de waarde van zoekterm opnieuw in het tekstveld verschijnen. Ook het menu instock moet zijn vorige toestand onthouden. Dit doet u door de waarde uit de QueryString te koppelen aan InitVal van het tekstveld zoekterm en aan het menu instock.» Voeg aan het Bindings de URL Variable zoekterm toe.» Maak een tweede URL Variable instock aan. 12: Webapplicatie: boekengids - 231
60 » Sleep URL:zoekTerm vanuit het Bindings palet over het tekstveld zoekterm.» Selecteer het menu instock op de pagina.» Klik op de Dynamic-knop in het Properties palet.» Maak Select value equal to gelijk aan echo $_GET['inStock'].» Bewaar de pagina en test de zoekfunctie in een browser. Indien de zoekfunctie geen resultaat oplevert, verschijnt er een lege tabel op de pagina. Enkel Neen is ingevuld. Dit is afkomstig van de functie: ($row_rsboeken['instock'] == 1)? 'Ja' : 'Neen' U gaat de pagina verder aanpassen zodat de tabel verdwijnt en er een foutboodschap in de plaats komt.» Plaats een foutboodschap onder de navigatiebalk Dreamweaver CS5 - PHP5
61 » Selecteer de foutboodschap (de volledige p-tag) en voeg de Server Behavior Show Region:Show Region If Recordset Is Empty toe.» Selecteer vervolgens de ganse tabel (table-tag) en voeg de Server Behavior Show Region:Show Region If Recordset Is Not Empty toe.» Bewaar de pagina en test het resultaat in een browser. Nu nog een link naar de detailpagina voorzien en index.php is klaar.» Selecteer {rsboeken.titel} in de tabel op de pagina.» Voeg de Server Behavior Go To Detail Page toe.» Blader naar detail.php en zend boekid als URL parameter mee.» Bewaar en sluit de pagina. 12: Webapplicatie: boekengids - 233
62 Detailpagina boeken (detail.php).» Open detail.php. Op de overzichtspagina wordt de titel van een boek gelinkt aan de detailpagina. boekid wordt als unieke waarde doorgegeven via de URL.» Maak in Simple Mode een nieuwe recordset rsdetail aan.» Toon alle kolommen uit tbl_boeken en filter op de URL parameter boekid.» Ga naar Advanced mode en pas de query als volgt aan: SELECT * FROM tbl_boeken, tbl_auteurs WHERE boekid = colname AND tbl_auteurs.auteurid = tbl_boeken.auteurid» Sleep titel, omschrijving, isbn, prijs, naam, instock en pubdatum vanuit het Bindings palet naar de juiste plaats op de pagina. Op de naam van een auteur komt een link naar zijn mailadres Dreamweaver CS5 - PHP5
63 » Selecteer {rsdetail.naam} en klik op Browse for File in het Properties palet.» Klik op Data Sources.» Selecteer uit Recordset(rsDetail). Nu hebt u enkel het mailadres gekoppeld aan de naam. Om een te kunnen verzenden, moet u het mailadres laten voorafgaan door mailto:.» Vervolledig de link in het Properties palet. De tekst die achter In stock: verschijnt, is vergelijkbaar met deze op de overzichtspagina.» Open index.php en kopieer de inhoud van de cel In stock:.» Sluit index.php.» Plak de gekopieerde code op de detailpagina.» Selecteer het eerste PHP-icoon.» Vervang in de PHP-code $row_rsboeken door $row_rsdetail. <?php echo ($row_rsdetail['instock'] == 1)? 'Ja' : 'Neen';?> 12: Webapplicatie: boekengids - 235
64 Vervolgens gaat u de cover van het boek op de pagina plaatsen. Om dynamische afbeeldingen weer te geven, gaat u alle afbeeldingen in één map binnen de site bewaren. Voor de meeste boeken vindt u een figuur (de cover van het boek) in de map covers. Alle boeken waarvoor geen cover beschikbaar is, maken gebruik van een dummy afbeelding. Deze dummy afbeelding is een bestand van 1x1 pixel (pixel.gif). In werkelijkheid staat op elke pagina een afbeelding. Op pagina's waar de pixel getoond wordt, zal de gebruiker hier niets van merken en is het alsof er geen afbeelding staat. U gaat het pad naar deze afbeelding niet volledig bewaren in de database. Het pad zal immers verschillend zijn op de testserver en op de productieserver. Op de testserver gaat u het pad laten verwijzen naar: Op de productieserver wordt dit: Het is dus niet verstandig de volledige URL naar de afbeelding in de database te bewaren. U moet altijd trachten de gegevens binnen de database zo universeel mogelijk te houden. Om de cover te tonen, maken we gebruik van een relatief pad. Het pad naar de cover bestaat uit twee delen. Deze naam van het document vindt u in de kolom coverurl binnen de database. Het pad dat voor de naam hoort, plaatsen we manueel.» Sleep het Image Placeholder-object ( ) vanuit het Insert palet (rubriek: Common) naar de eerste cel binnen de tabel (linkse cel bovenaan).» Noem de placeholder cover. De breedte en de hoogte zijn onbelangrijk. Uiteindelijk neemt de afbeelding automatisch de breedte en de hoogte van de afbeelding over Dreamweaver CS5 - PHP5
65 » Selecteer de placeholder op de pagina.» Selecteer coverurl in het Bindings palet en klik op Bind.» Pas het pad naar het Src-bestand aan. (Plaats../covers/ voor de link.) Van: <?php echo $row_rsdetail['coverurl'];?> Naar:../covers/<?php echo $row_rsdetail['coverurl'];?> 12: Webapplicatie: boekengids - 237
66 De alt-tekst op de placeholder staat momenteel op <empty>. U kan eventueel de titel van het boek aan het alt-attribuut en aan het title-attribuut koppelen.» Selecteer de placeholder en ga naar Code view.» Sleep titel vanuit het Bindings palet tussen de aanhalingstekens van de alt-tekst.» Voeg het title-attribuut toe met dezelfde inhoud als het alt-attribuut. <img src="../covers/<?php echo $row_rsdetail['coverurl'];?>" alt="<?php echo $row_rsdetail['titel'];?>" title="<?php echo $row_rsdetail['titel'];?>" name="cover" id="cover" />» Bewaar de pagina en test de detailpagina in een browser. T Vertrek vanaf de overzichtspagina en vraag de detailpagina op van de boeken Dreamweaver CS5 - Initiatie (voor dit boek is een cover beschikbaar) en Mathcad 2000 Professional (een boek zonder cover). Voorlopig staan de datum en de prijs nog in een Amerikaanse notatie. De datum verschijnt als yyyy-mm-dd en de prijs, een kommagetal, wordt met een punt getoond. De voorstelling van beide velden kunnen we eveneens aanpassen vanuit het Bindings palet.» Selecteer {rsdetail.pubdatum} en kies uit het Formatmenu mediatafel:date/time: 17 januari Dreamweaver CS5 - PHP5
67 De datum wordt voluit geschreven, maar verschijnt nog steeds Engelstalig (zie detailpagina Dreamweaver CS5 - PHP).» Plaats de cursor net voor {rsdetail.pubdatum}.» Voeg het Server behavior mediatafel:set Locale Info toe en kies de gewenste taal. De functie setlocale() in combinatie met strftime() bepaalt de taal waarin de datum verschijnt. <td> <?php setlocale(lc_all, 'nl_be', 'belgian');?> <?php echo strftime('%d %B %Y',strtotime($row_rsDetail['pubDatum']));?> </td>» Selecteer {rsdetail.prijs} en kies uit het Formatmenu mediatafel:number: ,67.» Bewaar de pagina en bekijk het resultaat in een browser. 12: Webapplicatie: boekengids - 239
68 12.4 Het administratieve gedeelte van de website. Map: site_ontwerp/admin login.php. Loginpagina voor de beheerder. index.php. De startpagina voor de beheerder. auteurs/index.php. Toon een overzicht van alle auteurs. Voeg een nieuwe auteur toe. auteurs/bewerk.php. Bewerk de gegevens van een auteur. auteurs/wis.php. Verwijder een auteur uit de database. boeken/index.php. Toon een overzicht van alle boeken. Voeg een nieuw boek toe. boeken/bewerk.php. Bewerk de gegevens van een boek. boeken/wis.php. Verwijder een boek uit de database. Alle gegevens over een bepaald boek zijn verdeeld over twee tabellen (tbl_auteurs en tbl_boeken). Per tabel moet de beheerder gegevens kunnen aanpassen, toevoegen en wissen. Niet elke gebruiker heeft toegang tot deze pagina's, vandaar dat u elke pagina beveiligt met een login en een paswoord. De logingegevens worden vergeleken met de gecodeerde waardes in de tabel tbl_login_boekengids. In deze toepassing gaan we ervanuit dat één login volstaat en dat de login/paswoord-combinatie niet wijzigt. Indien u ook deze gegevens online wenst aan te passen, moet u hiervoor extra pagina's aan het administratieve gedeelte toevoegen Dreamweaver CS5 - PHP5
Adobe Dreamweaver CS4 - PHP5
Adobe Dreamweaver CS4 - PHP5 Ontwerpen van webapplicaties met PHP en MySQL Versie 1.0 - Januari 2009 Adobe, Macromedia, Dreamweaver, Fireworks en Flash zijn handelsmerken of gedeponeerde handelsmerken
Macromedia Dreamweaver 8 - PHP5
Macromedia Dreamweaver 8 - PHP5 Ontwerpen van webapplicaties met PHP en MySQL Versie 1.0 - maart 2007 Adobe, Macromedia, Dreamweaver, UltraDev, Fireworks, Flash, Contribute, FlashPaper en FreeHand zijn
Adobe Dreamweaver CS3 - PHP5
Adobe Dreamweaver CS3 - PHP5 Ontwerpen van webapplicaties met PHP en MySQL Versie 1.0 - September 2007 Adobe, Macromedia, Dreamweaver, Fireworks en Flash zijn handelsmerken of gedeponeerde handelsmerken
Macromedia Dreamweaver MX 2004 - ASP
Macromedia Dreamweaver MX 2004 - ASP Ontwerpen van webapplicaties met ASP en Access Versie 1.2 - maart 2005 Macromedia, Dreamweaver, UltraDev, Fireworks, Flash, Contribute en FreeHand zijn handelsmerken
Macromedia Dreamweaver MX - ASP
Macromedia Dreamweaver MX - ASP Ontwerpen van dynamische websites met ASP en Access Macromedia, Dreamweaver, UltraDev, Fireworks, Flash, Sitespring en FreeHand zijn handelsmerken of gedeponeerde handelsmerken
Macromedia Dreamweaver 8 - ASP
Macromedia Dreamweaver 8 - ASP Ontwerpen van webapplicaties met ASP en Access Versie 1.1 - juni 2006 Adobe, Macromedia, Dreamweaver, UltraDev, Fireworks, Flash, Contribute, FlashPaper en FreeHand zijn
Query SQL Boekje. Fredrik Hamer
Query SQL Boekje Query SQL Boekje Fredrik Hamer Schrijver: Fredrik Hamer Coverontwerp: Fredrik Hamer ISBN: 9789402162103 Fredrik Hamer Inhoudsopgave A. Aanhef bepalen 17 Aantal 18 Aantal dagen tussen
Formulieren maken met Dreamweaver CS 4/CS 5
Formulieren maken met Dreamweaver CS 4/CS 5 In deze handleiding leer je om een formulier en elementen die je binnen een formulier kunt gebruiken, te ontwerpen met Dreamweaver. Het uitgangspunt is dat dit
Les 15 : updaten van gegevens in de database (deel2).
Les 15 : updaten van gegevens in de database (deel2). In de volgende reeks lessen zal alle vorige leerstof uitgebreid aan het bod komen. Zie ook de vorige lessen en documenten om informatie op te zoeken
Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site
Kies File>New>Blank Page>PHP Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site Geef de site een passende naam. Kies ook de juiste map voor de webdocumenten.
Formulieren maken met Dreamweaver CS 4
Formulieren maken met Dreamweaver CS 4 In deze handleiding leer je om een formulier en elementen die je binnen een formulier kunt gebruiken, te ontwerpen met Dreamweaver. Het uitgangspunt is dat dit zoveel
Quick Guide VivianCMS
Quick Guide VivianCMS Contactformulier creëren Versie: 1.0 Startdatum: 24 juli 2006 Datum laatste wijziging: 24 juli 2006 Opmerking: Gepubliceerd op http://www.viviancms.nl Inhoud 1 Inleiding...3 1.1 Contactformulier
In het CMS is het mogelijk om formulieren aan te maken. Voorafgaand een belangrijke tip:
FORMULIEREN In het CMS is het mogelijk om formulieren aan te maken. Voorafgaand een belangrijke tip: belangrijk Importeer formulierdata uit een CSV-bestand precies zoals verderop beschreven. 1. Gedrag
Technische nota AbiFire Rapporten maken via ODBC
Technische nota AbiFire Rapporten maken via ODBC Laatste revisie: 23 januari 2018 Inhoudsopgave 1 Inleiding... 2 2 Systeeminstellingen in AbiFire... 3 2.1 Aanmaken extern profiel... 3 2.2 Toewijzing extern
SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.
BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is
Technische nota AbiFire5 Rapporten maken via ODBC
Technische nota AbiFire5 Rapporten maken via ODBC Laatste revisie: 29 juli 2009 Inhoudsopgave Inleiding... 2 1 Installatie ODBC driver... 2 2 Systeeminstellingen in AbiFire5... 3 2.1 Aanmaken extern profiel...
Een website maken met databasetoegang.
Hoofdstuk 5 Een website maken met databasetoegang. In dit hoofdstuk gaan we het weblog dat je in hoofdstuk 4 hebt gemaakt verder uitbreiden. Een belangrijk onderdeel wordt toegevoegd aan de applicatie,
Snel aan de slag met BasisOnline en InstapInternet
Snel aan de slag met BasisOnline en InstapInternet Inloggen Surf naar www.instapinternet.nl of www.basisonline.nl. Vervolgens klikt u op de button Login links bovenin en vervolgens op Member Login. (Figuur
Inleiding...2. 1. MyUnifiedPost: verschillende inboxen...3. 2. De standaard MyUnifiedPost-inbox van het reisagentschap...4
Manual MyBTN Inhoud Inleiding...2 1. MyUnifiedPost: verschillende inboxen...3 2. De standaard MyUnifiedPost-inbox van het reisagentschap...4 2.1 De standaard inbox openen...4 2.2 De inbox...5 2.3 Labels
Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at www.pyrrho.
Automatisering voor Financiële Dienstverleners Werken met Queries en Merge Documenten For more information visit our website at www.pyrrho.com Date: Document Nr: 30 maart, 2007 UBizzMerge, Versie 4.0 Status:
Handleiding Website Laatste update: april 2014
Laatste update: april 2014 1. Google Search Tijdens de ontwikkeling van uw website werd er veel aandacht besteed aan optimalisatie voor zoekmachines zoals Google. Dit onder andere door de broncode technisch
Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster
4. 4. Inhoud rste BAC Toegepaste Biologische Wetenschappen Hoofdstuk 4 Databank Terminologie, Navigeren, Importeren Tabellen Records/Velden manipuleren Queries (Vragen) [Ook in SQL] sorteren filter volgens
Handleiding RS Form! 1.0.4
Handleiding RS Form! 1.0.4 Inhoud 1. Controlepaneel... 3 2. Forms Manager... 4 2.1 Nieuwe form aanmaken... 4 2.2 Nieuwe fields toevoegen... 7 2.3 Wijzigen/verwijderen bestaande Forms, Fields... 10 Versie
Les 2 Eenvoudige queries
Les 2 Eenvoudige queries XAMP Apache server ( http ) mysql server PHP myadmin IAM SQL oefeningen Database phpmyadmin Import : sql_producten.sql, sql_winkel.sql, sql_festival.sql SAMS SQL in 10 minuten
6.8 Lijsten: oefeningen
6.8 Lijsten: oefeningen Opgaven 44.: Records zoeken Open het document "Autokosten". Klik in de lijst. Kies de opdracht 'Data - Formulier' [Data - Form]. Klik de knop 'Criteria' [Criteria]. Vul als zoekcriterium
Les 9: formulier controle met javascript.
Les 9: formulier controle met javascript. Javascript is erg veel gebruikt bij internet toepassingen. In tegenstelling tot PHP, wat een server side scripting is, is java client side scripting. Dwz, niet
Subrapporten. 5.1 Inleiding
5 Subrapporten 5.1 Inleiding Een subrapport is een rapport in een rapport. Een subrapport maak je dan ook net zoals je een gewoon rapport maakt. Een subrapport heeft bijna alle eigenschappen die een normaal
Bitrix Site Manager gebruikershandleiding BureauZuid
Bitrix Site Manager gebruikershandleiding BureauZuid Introductie Deze gebruikershandleiding geeft gedetailleerde basisinformatie over hoe te werken met Bitrix Site Manager. Deze handleiding is bedoeld
U krijgt de melding dat uw browser geen cookies aanvaardt? Volg dan onderstaande weg om ze wel te accepteren.
HELP BIJ HET RAADPLEGEN VAN HET PORTAAL HDP Hoe internet-cookies aanvaarden? U krijgt de melding dat uw browser geen cookies aanvaardt? Volg dan onderstaande weg om ze wel te accepteren. Internet Explorer
Excel Controller. Handleiding Excel Controller Wizard
Excel Controller Handleiding Excel Controller Wizard 1 Inhoud Inleiding... 3 Eigen SQL... 3 Stap 1 Eigen SQL... 3 Stap 2 Testen SQL... 8 Stap 3 Wizard... 11 Stap 4 Parameters... 13 Voorbeeld Eigen Parameter...
Dynamische websites met PHP (basis) Karel Nijs 2010/09
Dynamische websites met PHP (basis) Karel Nijs 2010/09 Leswijze Eerst wat theorie Begeleid met (korte) oefeningen Editor = UltraEdit Geen DreamWeaver Browser = Internet Explorer Vereiste voorkennis: (X)HTML
Globale kennismaking
Globale kennismaking Kennismaking Tesla CMS 1. Dashboard 2. pagina beheer - pagina aanmaken - pagina aanpassen - pagina verwijderen - pagina seo opties - zichtbaarheid pagina 3. subpagina beheer - subpagina
Handleiding Webapplicatie Robin
Handleiding Webapplicatie Robin (Versie 05) Inhoudstafel 1. Registratie van uw labo... 2 2. Persoonlijke account aanmaken... 4 3. Inloggen in uw labo account... 7 4. Wijziging labogegevens... 8 5. Inschrijven
Handleiding theocms2 K.U.Leuven - Faculteit Godgeleerdheid Stijn Van Baekel 1/19. - HANDLEIDING CMS2 - http://theo.kuleuven.be/
Stijn Van Baekel 1/19 - HANDLEIDING CMS2 - http://theo.kuleuven.be/ laatste aanpassing: 08/10/2008 Stijn Van Baekel 2/19 Index Index... 2 Inleiding... 3 1. Tonen van pagina s... 4 2. Beheer van pagina
WERKEN MET ELEKTRONISCHE POST
WERKEN MET ELEKTRONISCHE POST Naam Nr Klas Datum Met E-mail of elektronische post kan je berichten verzenden naar en ontvangen van andere computersystemen die aangesloten zijn op het Internet. De berichten
Lab Webdesign: Javascript 7 april 2008
H8: FORMULIEREN In dit hoofdstuk komt het "form"-object aan de orde: we zullen zien hoe we JavaScript kunnen gebruiken voor het manipuleren en valideren van de gegevens die een eindgebruiker invult in
Gemeente Haarlemmermeer. Leer zelf je nieuwsbrief maken in YMLP. Opgesteld door: drs. Mariska I.R. Franse Datum: 6 en 11 juni 2013
Gemeente Haarlemmermeer Leer zelf je nieuwsbrief maken in YMLP Opgesteld door: drs. Mariska I.R. Franse Datum: 6 en 11 juni 2013 Nwsbrf.nl Office @ Igluu Jansdam 2a 3512HB Utrecht 06 447 08 349 [email protected]
De Kleine WordPress Handleiding
Introductie Dit is geen uitgebreide handleiding om een WordPress website of blog mee te bouwen. Het is ook geen overzicht van alle aspecten die een WordPress website zo bijzonder maken en geen verhandeling
Hoofdstuk 1 Inleiding PHP 7 of ouder Hoe dit boek werkt 2
Inhoud Hoofdstuk 1 Inleiding 1 1.1 PHP 7 of ouder 2 1.2 Hoe dit boek werkt 2 Hoofdstuk 2 De programmeeromgeving 5 2.1 In dit hoofdstuk 5 2.2 Editor 5 2.3 Webserver op Linux, Mac of PC 5 2.4 De webmap 6
SQL datadefinitietaal
SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen
Handleiding: OpenEmm nieuwsbrief manager Diergaarde Blijdorp
Handleiding: OpenEmm nieuwsbrief manager Diergaarde Blijdorp Algemeen Deze handleiding beschrijft de werking van OpenEmm gekoppeld aan WordPress. Ondanks het feit dat binnen OpenEmm nieuwsbrieven opgemaakt
Mach3Framework 5.0 / Website
Mach3Framework 5.0 / Website Handleiding Mach3Builders Inhoudsopgave 1 Inloggen...5 1.1 Ingelogd blijven...6 1.2 Wachtwoord vergeten...7 2 Applicatie keuzescherm...8 2.1 De beheeromgeving openen...9 3
Handleiding Formulieren in TYPO3 Versie 1.2, 18 juli 2008
Handleiding Formulieren in TYPO3 Versie 1.2, 18 juli 2008 1. Formulieren aanmaken en plaatsen... 2 1.1 Formulieren aanmaken... 2 1.2 Formulier plaatsen op een pagina... 8 1.3 Aanmaken formulieren map...
en via WISA. 29 juli 2016. WISA helpdesk
E-mailen via WISA 29 juli 2016 WISA helpdesk Inhoudsopgave 1 E-mailen via WISA 2 1.1 Instellingen.................................... 3 1.1.1 Mails sturen via............................. 3 1.1.1.1 Standaard
Hosting. Aan de slag. WeFact B.V. Kuiper 7a 5521 DG Eersel Nederland. w: www.wefact.nl e: [email protected]
Hosting Aan de slag WeFact B.V. Kuiper 7a 5521 DG Eersel Nederland w: www.wefact.nl e: [email protected] 1. Installatie WeFact Hosting installeren In ons e-mail bericht heeft u inloggegevens ontvangen
AFO 142 Titel Aanwinsten Geschiedenis
AFO 142 Titel Aanwinsten Geschiedenis 142.1 Inleiding Titel Aanwinsten Geschiedenis wordt gebruikt om toevoegingen en verwijderingen van bepaalde locaties door te geven aan een centrale catalogus instantie.
SwingOffice in een notendop
SwingOffice in een notendop doelstelling: opvolging en bijsturing van berichten (per e-mail). 1. Inloggen in de Swing-omgeving Surf (gebruik Microsoft Internet Explorer) naar : http://swinglinecomputer/servico/default.aspx
Zo kan je linken maken tussen je verschillende groepen van gegevens.
1 1. Entity Reference Entity Reference zal ook een onderdeel zijn van Drupal 8. Het is een module van het type veld. Het is een heel krachtige module die toelaat om referenties te maken tussen verschillende
A.C. Gijssen. 0.3 PHP en MySQL
PHP en MySQL A.C. Gijssen 0.3 PHP en MySQL PHP en MySQL 0.4 Inhoudsopgave Voorwoord Deel 1 Over PHP 1.1 Inleiding...13 1.2 Wat is PHP?...14 1.3 De geschiedenis van PHP...15 1.4 Editor...16 1.5 PHP en websites...17
Inhoud Basiscursus. Access 2010 NL-NL
Inhoud Basiscursus Access 2010 NL-NL 1 - Access starten... 6 Een bestaande database openen... 8 Menu-opdrachten gebruiken... 9 Werkbalken tonen en verbergen... 11 Menu- en werkbalkopties aanpassen... 12
E-MAILS VERZENDEN MET AFDRUK SAMENVOEGEN
E-MAILS VERZENDEN MET AFDRUK SAMENVOEGEN Met E-mail samenvoegen voor Word en Outlook kunt u o.a. een brochure of nieuwsbrief maken en deze per e-mail verzenden naar uw Outlook-lijst met contactpersonen
Opstarten van de GRATIS facturatiemodule
Opstarten van de GRATIS facturatiemodule 1 Welkom in het gratis facturatieprogramma van WinBooks on Web Het gratis facturatieprogramma is ontworpen om u kennis te laten maken met de interessante functionaliteiten
Handleiding ZorgMail Secure e-mail - Webmail
Handleiding ZorgMail Secure e-mail - Webmail 2014 ENOVATION B.V. Alle rechten voorbehouden. Niets uit deze uitgave mag worden openbaar gemaakt of verveelvoudigd, opgeslagen in een data verwerkend systeem
Instructie RFM modules
Instructie RFM module Introductie RFM staat voor Registratie Flow Module. De RFM module vormt de basis voor een aantal nieuwe modules binnen equse Indicate: - Calamiteiten - Klachten - Kindermishandeling
Formulierbeheer Importeren bestaand (model)formulier... 2 Wat is exporteren/importeren eigenlijk?... 3 Formulier aanpassen/opbouwen...
Formulierbeheer Importeren bestaand (model)formulier... 2 Wat is exporteren/importeren eigenlijk?... 3 Formulier aanpassen/opbouwen... 4 Bewerken formulier in formulierbeheer... 4 Bewerken formulier -
PhPlist Gebruikers Handleiding
PhPlist Gebruikers Handleiding Auteur: Sander Duivenvoorden Bedrijf: Buildnet webservices E-mail: [email protected] Datum: 23-09-2008 Laatste wijziging: 17-10-2008 Versie: 1.1 1 Inleiding Het verzenden
Handleiding Digitaal Aanvraagformulier
Handleiding Digitaal Aanvraagformulier Deze handleiding wil een summier overzicht geven van de installatieprocedure van het digitaal aanvraagformulier. De handleiding is bedoeld voor de al wat ervaren
Adobe Dreamweaver CS4 startersgids
Adobe Dreamweaver CS4 startersgids Ontwerp van statische websites met XHTML en CSS Versie 1.0 - juni 2009 Adobe, Macromedia, Dreamweaver, Fireworks en Flash zijn handelsmerken of gedeponeerde handelsmerken
Toegang deelnemers / Inloggen... 02. Account deelnemer... 03. Communicatiemateriaal.. 03. Bijbestellen communicatiemateriaal.. 03
Inhoudstafel Handleiding Online Tool Dag van de Zorg 2016 Toegang deelnemers / Inloggen... 02 Paswoord vergeten. 02 Account deelnemer... 03 Communicatiemateriaal.. 03 Bijbestellen communicatiemateriaal..
Databases - Inleiding
Databases Databases - Inleiding Een database is een verzameling van een aantal gegevens over een bepaald onderwerp: een ledenbestand van een vereniging, een forum, login gegevens. In een database worden
Voordat u gebruik kunt maken van ZorgMail in Intramed, zijn een aantal instellingen nodig:
Hoofdstuk 1 ZorgMail instellen en gebruiken Via Intramed en de applicatie ZorgMail van E-novation Lifeline, kunt u elektronisch en beveiligd gegevens uitwisselen met andere zorgverleners. Dit gaat via
In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze. programmeertaal? En hoe is het ontstaan? Ook leer je welke editors
1. Over PHP 1.1 Inleiding In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze programmeertaal? En hoe is het ontstaan? Ook leer je welke editors je kunt gebruiken om PHP-scripts te maken en hoe je
Aan de slag met: eenvoudig zoeken en filteren van zoekresultaten
Aan de slag met: eenvoudig zoeken en filteren van zoekresultaten versie januari 0 Wilt u zoeken zoals u in Google zoekt, dan is de homepage uw startpunt. Tik uw zoekvraag in in het zoekveld. Rechts verschijnen
3.4 De Wizard voor het samenvoegen
3.4 De Wizard voor het samenvoegen Het hoofddocument kan een brief, maar kan ook een etiket of enveloppe zijn. Bij het samenvoegen van het hoofddocument met het gegevensbestand worden telkens de gegevens
Met onderstaand stappenplan kunt u in korte tijd kennismaken met ICEmailer en uw eerste nieuwsbrief versturen.
Introductie ICEmailer 1.02 URL en inloggegevens: url: www.icemailer.nl organisatie: user: password: Eerste stappen: Indien u ICEmailer gebruikt om mailings te sturen naar klanten van uw online webshop,
MA!N Rapportages en Analyses
MA!N Rapportages en Analyses Auteur Versie CE-iT 1.2 Inhoud 1 Inleiding... 3 2 Microsoft Excel Pivot analyses... 4 2.1 Verbinding met database... 4 2.2 Data analyseren... 5 2.3 Analyses verversen... 6
ZorgMail Secure e-mail
ZorgMail Secure e-mail 2014 ENOVATION B.V. Alle rechten voorbehouden. Niets uit deze uitgave mag worden openbaar gemaakt of verveelvoudigd, opgeslagen in een data verwerkend systeem of uitgezonden in enige
8.8 Records selecteren
8.8 Records selecteren Voor het maken van een uittreksel van één of meerdere records die aan een bepaald criterium voldoen, maakt u gebruik van het 'Filter'. 8.8.1 Automatisch filter Klik in het gebied
H AN D L E I DI N G FORM U LI E RM AK E R
FORMULIERMAKER H AN D L E I DI N G FORM U LI E RM AK E R Versie 1.3 gepubliceerd op 21 februari 2012 D e onderdelen van een f ormul i er Met de formuliermaker (formbuilder) kunt u binnen uw website op
Handleiding helpdesk. Datum: 08-10-2014 Versie: 1.0 Auteur: Inge van Sark
Datum: 08-10-2014 Versie: 1.0 Auteur: Inge van Sark Inhoudsopgave Inhoudsopgave... 2 1. Beheer helpdesk... 3 1.1. Settings... 3 1.2. Applicaties... 4 1.3. Prioriteiten... 5 1.4. Gebruik mailtemplates...
Les Webform INLEIDING VOORBEREIDING
Les 4 1. Webform INLEIDING Webform is een zeer knappe module. De interface is zeer overzichtelijk en de het geheel is zeer goed gedocumenteerd. De mogelijkheden eindeloos. Naast Views wordt Webform gezien
Handleiding webformulieren
Handleiding webformulieren www.ucll.be versie: januari 2017 auteur: Nele Clijsters Inhoudsopgave 1. Webformulier aanmaken... 3 2. Besturingselementen... 4 2.1. Bestand... 4 2.2. Countdown... 4 2.3. Datum...
Installeer Apache2: Landstede februari 2009 versie 3 1 Bertil Hoentjen
Installeer Apache2: Deze howto gaat over name based virtual hosting onder Apache 2.x., en is getest onder OpenSUSE 11 maar is in feite ook van toepassing op de andere distributies. Alleen Debian en afgeleide
Deel 2: Endnote bibliografische software gebruiken als databasemanager en editor
Deel 2: Endnote bibliografische software gebruiken als databasemanager en editor Versie feb. 2015 pag. 38 Endnote output: 1. Organiseer je database 2. Doorzoek de referenties in je database 3. Publiceren,
HTML. Formulieren. Hans Roeyen V 3.0
Formulieren Hans Roeyen V 3.0 26 februari 2015 Inhoud 1. Formulieren... 3 1.1. De form tag... 3 1.1.1. Het action attribute... 4 1.1.2. Het method attribute... 4 1.2. De input tag... 4 1.3. Soorten input
Handleiding Belcar on line TMS(V )
Handleiding Belcar on line TMS(V 1.00.01) Opstarten Open je web brouwser en vul volgend webadres in : http://online.belcar.be Geef je User id : En Password : Je login naam Je paswoord voor deze web toepassing
Uw TEKSTEDITOR - alle iconen op een rij
Uw TEKSTEDITOR - alle iconen op een rij Hieronder ziet u alle functionaliteiten van uw teksteditor onder elkaar ( op alfabetische volgorde). Afbeelding (zie foto) Bestanden (zie link) Broncode Citaat Documenten
Handleiding digitaal dossier
Handleiding digitaal dossier Handleiding digitaal dossier... 1 Omschrijving... 2 Login met persoonlijke account... 3 Geen persoonlijke account... 3 Automatisch omwisselen naar persoonlijke account... 4
Data Warehouse Script Generator Doel
Data Warehouse Script Generator Doel Op basis van een aantal standaard sql scripts ( create table, create view ) een nieuwe sql script genereren welke alle objecten ( tables & views ) kan aanmaken in een
Handleiding. Webtoepassingen. Juli/2014. Vzw Stijn Breugelweg Overpelt
Handleiding Webtoepassingen Juli/2014 Vzw Stijn Breugelweg 200 3900 Overpelt Inhoudsopgave 1. AANMELDEN... 1 1.1. Authenticatiekeuze... 1 1.2. Aanmelden met identiteitskaart... 1 1.2.1. Kaartlezer installeren...
Opstellen van interactieve PDF-documenten
1. Inleiding Opstellen van interactieve PDF-documenten Werken met PDFescape Het Portable Document Format, of kortweg PDF, is een standaard voor de uitwisseling van elektronische documenten en formulieren
8.1.1 Aanmaken van een nieuwsbrieflijst voor een nieuwsbrief
8. Nieuwsmanagement Doormiddel van het nieuwsmanagement onderdeel kunt u uw klanten op de hoogte houden van het laatste nieuws, de nieuwste producten of de beste aanbiedingen. U kunt dit in de webshop
Een pagina toevoegen en/of bewerken.
Een pagina toevoegen en/of bewerken. Na het inloggen in het CMS zie u het volgende: 2 3. Een klik op dit menu geeft een overzicht van alle pagina s waar de website op dat moment uit bestaat: 2. Een klik
DE ELEKTRONISCHE IDENTITEITSKAART (EID)
DE ELEKTRONISCHE IDENTITEITSKAART (EID) MS OFFICE OUTLOOK 2007 (WINDOWS) VERSIE 1.1.1 NL Disclaimer Fedict is niet verantwoordelijk voor om het even welke schade die een derde zou ondervinden ingevolge
Quick Start Guide. Het Dashboard
Quick Start Guide Deze Quick Start Guide vertelt alle basisprincipes over het gebruik van de software, zodat u snel aan de slag kunt. Deze gids fungeert als een breed overzicht van het systeem. Hiernaast
2 Eisenanalyse. 2.1 Functionele eisen het UseCaseDiagram
2 Eisenanalyse 2.1 Functionele eisen het UseCaseDiagram beschrijvingen van de UseCases en/of prototype Inloggen Inloggen Deze usecase zorgt ervoor dat de gebruiker zich kan inloggen op het systeem. lid
Handleiding om uw website/webshop aan te passen
Handleiding om uw website/webshop aan te passen ONDERWERP PAGINA 1. Hoe moet ik inloggen in het beheer? 2 2. Hoe pas ik een bestaande pagina aan? 2 3. Hoe plaats ik een afbeelding? 3 4. Hoe maak ik een
Handleiding CMS VOORKANT
Handleiding CMS VOORKANT Inhoudsopgave Pagina 1. Toegang tot het CMS... 3 2. Artikel toevoegen... 4 3. Artikel bewerken... 5 4. Artikel kopiëren of verwijderen... 6 5. Afbeelding, link of tabel invoegen...
Handleiding Wordpress
Handleiding Wordpress Inhoudsopgave 1. Inloggen 2. Berichten en Pagina s 3. Afbeeldingen en video s 4. Weblinks 1. Inloggen 1.1 Inloggen bij Wordpress We starten met het inloggen op je WordPress gebaseerde
TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise
TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise Inhoudsopgave 1. Voorbereiding... 4 2. Web Service Connector tool configuratie... 5 3. TaskCentre taak voor het aanmaken van
6. Het maken van een database
6. Het maken van een database 6.1. Inleiding In hoofdstuk 5 heb je de oefendatabase gemaakt doormiddel van een script. In dit hoofdstuk ga je zelf een database maken en deze vullen met tabellen. Hiervoor
ideal Betaal Formulier (Ondersteund o.a. ideal, MisterCash, Direct E-Banking en Credit Card)
Script: Versie: 0.5 Licentie: ideal Betaal Formulier (Ondersteund o.a. ideal, MisterCash, Direct E-Banking en Credit Card) Gratis te gebruiken door (erkende) goede doelen. 200,00 excl. BTW voor aanschaf
Gebruikershandleiding www.flamingo.be
Gebruikershandleiding www.flamingo.be Auteur : Web~IT Support and Consulting Datum : 19 december 2005 Opdrachtgever : Flamingo nv Pag. 2/27 Inhoudstafel Inhoudstafel 2 1. Starten 3 2. Pagina structuur
Website van het openbaar ministerie Korte gebruikershandleiding voor Content Managers
Website van het openbaar ministerie Korte gebruikershandleiding voor Content Managers De website van het openbaar ministerie is momenteel (tijdelijk) te vinden op volgende intranetadres: http://10.241.132.229.
HANDLEIDING CMS Versie 2.4 januari 2013
Het CMS dat bij deze site geleverd wordt heeft hoofdzakelijk tot doel om goed door Google gevonden te worden. De hiërarchie van het CMS geeft aan hoe google per pagina naar uw website kijkt. De mate van
