Informaticasite van het Sondervick College te Veldhoven                 © L.J.M van Haperen (bron : R.J. van der Beek)
 

PHP Opgaven deel 2

[H16.5 PHP1]   [H16.6 PHP2]   [H16.7 PHP3]   [H16.8 PHP4]   [PHP opgaven deel 1]  
  1. Maak een homepage waarop een regel staat met "Geef een getal (0=stoppen)" en daarachter een tekstvenster waarin dat getal kan worden ingevoerd.
    Daar onder een button met als opschrift "Volgende"
    Daar weer onder een regel waarop staat "Aantal ingevoerde getallen tot nu toe: " en daarachter een tekstvenster.
    Tenslotte een regel waarop staat "Som van de getallen tot nu toe: " en daarachter ook weer een tekstvenster.

    Elke keer als je in het bovenste tekstvenster een getal hebt ingevoerd, en daarna op de button "Volgende" klikt, dan verschijnt er een nieuwe pagina.
    Daarop staan de zelfde teksten en tekstvensters als op de eerste pagina. In de onderste tekstvensters staat dan afgedrukt hoeveel getallen je tot dan toe hebt ingevoerd en de som van die getallen.
    Het bovenste tekstvenster is leeg, en je kunt daar een nieuw getal invoeren.
    Dan kun je weer op "Volgende" klikken, en zo gaat het steeds verder.

  2. Maak een homepage die er als volgt uitziet:

    Ik heb een getal in mijn geheugen, jij moet het raden
    Welk getal raad je ?
     
      Hier verschijnt de uitslag van de controle

    Verder moet de computer zelf eerst een random-getal tussen 1 en 100 bedenken.
    Elke keer als je in het tekstvenster een getal hebt ingevoerd, en daarna op de button "Controleer" klikt, dan verschijnt er een nieuwe pagina (gegenereerd door hetzelfde document als van de eerste pagina).
    Daarop staan de zelfde teksten en vensters als op de eerste pagina.
    Als je op de knop drukt terwijl er geen of geen geldig getal is ingevuld (het moet een getal tussen 1 en 100 zijn) moet er onder de knop verschijnen: "Geef een getal tussen 1 en 100 a.u.b."
    Als er bijvoorbeeld 25 is ingevuld, terwijl de computer het getal 17 in zijn geheugen had, dan moet er onder de knop verschijnen : "te hoog, nog eens"
    Als het ingevulde getal goed is, en het is de vierde keer dat er een getal is ingevoerd, dan moet er onder de knop verschijnen : "Goedzo, je hebt het getal in 4 keer geraden"

  3. Maak een homepage waarop een optelsom verschijnt met willekeurige getallen tussen 20 en 30 (en een antwoordvenster achter de som).
    Daaronder een regel met "Aantal pogingen: " en daar achter een tekstvenster waarin 0 staat. Daaronder een button met "Controleer"
    Als er op de button met "Controleer" wordt geklikt dan verschijnt er een nieuwe pagina (gegenereerd door hetzelfde document als van de eerste pagina) en dan wordt er gecontroleerd of het antwoord goed is.
    Als het antwoord niet goed is dan wordt dat gemeld, hetzelfde sommetje verschijnt weer en er kan een nieuw antwoord worden ingevoerd. Het tekstvenster met daarin het aantal pogingen wordt aangepast.
    Als het antwoord goed is dan wordt dat vermeld, en daarbij wordt vermeld in hoeveel pogingen dat gebeurde.

  4. Maak een homepage waarop een regel staat met "Geef getal nummer 1" en daarachter een tekstvenster waarin een getal kan worden ingevoerd.
    Daaronder nog een button met als opschrift "Verzend".
    Als het getal is ingevoerd en er op de Verzend-knop is gedrukt dan verschijnt er een nieuwe pagina (gegenereerd door hetzelfde document als van de eerste pagina) en dan staat er op de eerste regel "Geef getal nummer 2" met een tekstvenster.
    Dit gaat zo lang door tot er een 0 wordt ingevoerd.
    Dan wordt op de nieuwe pagina vermeld hoeveel getallen er in totaal zijn ingevoerd, en wat de som van al die getallen was.

  5. Maak een homepage waarop een regel staat met "Geef een positief geheel getal (0=stoppen)" en daarachter een tekstvenster waarin dat getal kan worden ingevoerd.
    Daaronder een button met als opschrift "Verzend"
    Daaronder een regel waarop staat "Grootste getal tot nu toe: " en daarachter een leeg tekstvenster.
    Daaronder een regel waarop staat "Kleinste getal tot nu toe: " en daarachter ook weer een leeg tekstvenster.
    Elke keer als je in het bovenste tekstvenster een getal hebt ingevoerd, en daarna op de button "Verzend" klikt, verschijnt er een nieuwe pagina (gegenereerd door hetzelfde document als van de eerste pagina) en dan staat er op de eerste regel weer "Geef een positief geheel getal (0=stoppen)" en een tekstvenster waarin een getal kan worden ingevoerd.
    Verder staat in het tekstvenster achter "Grootste getal tot nu toe: " het grootste getal, dat tot dan toe is ingevoerd.
    En in het tekstvenster achter "Kleinste getal tot nu toe: " staat het kleinste getal, dat tot dan toe is ingevoerd.
    Dit gaat zo lang door tot er een 0 wordt ingevoerd.
    Dan wordt op de nieuwe pagina vermeld wat het grootste en kleinste getal was, en er staan geen tekstvensters en buttons meer op de pagina.

  6. Maak een homepage waarop een regel staat met "Geef een naam" en daarachter een tekstvenster waarin een naam kan worden ingevoerd.
    Daaronder een regel met als opschrift "Cijfer"
    Daarachter een tekstvenster waarin een cijfer kan worden ingevoerd
    Daaronder een button met als opschrift "Verzend"
    En daar weer onder een listbox, die in het begin leeg is.
    Als er een naam en een cijfer is ingevoerd, en er wordt op de verzend-button geklikt, dan verschijnt er een nieuwe pagina (gegenereerd door hetzelfde document als van de eerste pagina) en dan staan dezelfde regels op de pagina.
    Maar de tekstvensters voor de naam en het cijfer zijn leeg, en de eerste naam met daarachter het cijfer staan in de listbox. Dan kan er weer een naam en een cijfer worden ingevoerd, en op Verzend worden geklikt.
    Op de nieuwe pagina,die dan verschijnt staan weer dezelfde regels.
    De tekstvensters voor de naam en het cijfer zijn weer leeg, en de tweede naam met daarachter het cijfer staan nu ook in de listbox, er staan dan dus twee namen met cijfers in.
    En zo gaat dat steeds verder, tot er tien namen en cijfers zijn ingevoerd.

  7. Landen met hoofdsteden
    Maak een homepage waarop een regel staat met als opschrift "Land" en daar achter een tekstvenster waarin de naam van een land verschijnt.
    Daar onder een regel met als opschrift "Hoofdstad" en daar achter een tekstvenster waarin de naam van de hoofdstad ingevoerd kan worden.
    Daaronder een button met "Controleer"
    Zorg er voor dat het bestand LANDEN.TXT wordt ingelezen (zet dat bestand in dezelfde map als het PHP-document)
    In dat bestand LANDEN.TXT staan tien landen met de bijbehorende hoofdsteden in 20 regels opgeslagen, telkens een land en in de regel daarna de bijbehorende hoofdstad.
    En de eerste keer verschijnt de naam van het eerste land in het bovenste tekstvenster.
    Als er een hoofdstad is ingevoerd, en er wordt op de controleer-button geklikt, dan verschijnt er een nieuwe pagina (gegenereerd door hetzelfde document als van de eerste pagina) en op de eerste regel van die pagina staat dan, als het antwoord goed was, "Goedzo" en anders "Fout, het is ..." met op de stippen het goede antwoord.
    Verder staan dezelfde dingen op de pagina als de eerste keer.
    Maar nu verschijnt de naam van het tweede land in het bovenste tekstvenster, en dan kan de hoofdstad daarvan worden ingevoerd. En zo gaat dat door tot de tien landen zijn geweest.
    Als er na het tiende land op de controleer-knop wordt geklikt verschijnt er weer Goedzo of Fout, maar ook verschijnt er hoeveel er in totaal goed waren.

  8. Versje met regelnummers
    Maak een homepage waarop de regels van een versje, dat moet worden ingelezen, verschijnen.
    Daarvoor moet eerst het bestand GEDICHT.TXT worden ingelezen (zet dat bestand in dezelfde map als het PHP-document)
    In dat bestand GEDICHT.TXT staat een gedicht, dat bestaat uit 14 regels (waarvan één lege regel).
    Dat gedicht verschijnt dus op de pagina, met de regelnummers er voor.
    En ook wordt er een nieuw bestand aangemaakt met de naam GEDICHT2.TXT. En in dat bestand staan dezelfde regels als in GEDICHT.TXT maar dan met de regelnummers ervoor.

  9. Maak een homepage waarop een regel staat met "Gebruikersnaam : " en daarachter een tekstvenster waarin die naam kan worden ingevoerd.
    Daaronder een regel met "Wachtwoord : " en daarachter een tekstvenster waarin het wachtwoord kan worden ingevoerd, en wel zo dat als je daarin iets typt er sterretjes verschijnen.
    Daar weer onder een button met "OK"
    In het gebruikers-tekstvenster verschijnt automatisch het woord dat daar de laatste keer is ingevoerd.
    En zodra je op -OK- klikt wordt gecontroleerd of de gebruikersnaam Informatica is, en het wachtwoord nachtvlinder.
    Als er op de OK-knop is geklikt verschijnt er een nieuw venster.
    Als het niet klopt dan verschijnt er in het nieuwe venster "Gebruikersnaam en/of wachtwoord foutief" en anders verschijnt er "wachtwoord OK. U wordt ingelogd"
    Aanwijzing :
    Bij de start wordt het bestand GEBRUIKER.TXT ingelezen.
    Daarin staat namelijk de laatst gebruikte gebruikersnaam.
    En die naam wordt in het gebruiker-tekstvenster geplaatst.
    En als er op OK wordt geklikt dan wordt de ingevoerde gebruikersnaam in het bestand GEBRUIKER.TXT opgeslagen.

  10. Maak een homepage waarin een optelsom verschijnt met willekeurige getallen tussen 20 en 30, die m.b.v. Math.random worden gegenereerd.
    Achter de som een tekstvenster, waarin het antwoord kan worden ingevoerd.
    Daaronder een button met "Controleer"
    Als er op de button met "Controleer" wordt geklikt dan verschijnt er een nieuwe pagina (gegenereerd door hetzelfde document als van de eerste pagina) en dan wordt er gecontroleerd of het antwoord goed is.
    Verder worden de som, met het ingevoerde antwoord, opgeslagen in een bestand met de naam "ANTWOORDEN.TXT".
    Als het antwoord niet goed is dan wordt dat gemeld, hetzelfde sommetje verschijnt weer en er kan een nieuw antwoord worden ingevoerd.
    Als er daarna weer op de controleer-button wordt geklikt dan wordt het antwoord weer gecontroleerd.
    En de som, met het nu ingevoerde antwoord, wordt toegevoegd aan het bestand met de naam "ANTWOORDEN.TXT".
    Als het antwoord goed is dan wordt dat vermeld.

  11.  Lotnummers controleren
    Maak een homepage waarop een regel staat met als opschrift "Lotnummer" en daar achter een tekstvenster waarin een getal kan worden ingevoerd.
    Daaronder een button met "Controleer"
    Als er op de button met "Controleer" wordt geklikt dan verschijnt er een nieuwe pagina (gegenereerd door hetzelfde document als van de eerste pagina) en dan wordt er gecontroleerd of er een prijs op het lotnummer valt.
    en daar onder een tekstvenster waarin Prijs ! of Geen prijs verschijnt.
    Daarvoor moet eerst het bestand PRIJZEN.TXT worden ingelezen (zet dat bestand eerst even in dezelfde map als het php-document)
    In dat bestand PRIJZEN.TXT staan twintig getallen in 20 regels opgeslagen, dat zijn de nummers van loten waarop prijzen zijn gevallen.
    De computer moet dus controleren of het ingevoerde lotnummer voorkomt bij de twintig getallen uit het bestand. Als het wel voorkomt dan is er een prijs op het lotnummer gevallen, en dan verschijnt er op de pagina "Prijs !" en anders "Geen prijs, probeer nog eens"
    En dan kan er een ander lotnummer worden ingevoerd, dat dan gecontroleerd wordt.

  12. Woorden met engelse vertaling
    Maak een homepage waarop een regel staat met als opschrift "Woord" en daar achter een tekstvenster waarin een nederlands woord verschijnt.
    Daar onder een regel met als opschrift "Engels" en daar achter een tekstvenster waarin de vertaling van het woord in het engels ingevoerd kan worden.
    Daaronder een button met "Controleer"
    Zorg er voor dat het bestand ENGELS.TXT wordt ingelezen (zet dat bestand in dezelfde map als het PHP-document)
    In dat bestand ENGELS.TXT staan staan tien nederlandse woorden met de bijbehorende vertaling in het engels in 20 regels opgeslagen, telkens een nederlands woord en in de regel daarna de bijbehorende engelse vertaling.
    En de eerste keer verschijnt het eerste woord in het bovenste tekstvenster.
    Als de vertaling is ingevoerd, en er wordt op de controleer-button geklikt, dan verschijnt er een nieuwe pagina (gegenereerd door hetzelfde document als van de eerste pagina) en op de eerste regel van die pagina staat dan, als het antwoord goed was, "Goedzo" en anders "Fout, het is ..." met op de stippen het goede antwoord.
    Verder staan dezelfde dingen op de pagina als de eerste keer.
    Maar nu verschijnt het tweede woord in het bovenste tekstvenster, en dan kan de vertaling daarvan worden ingevoerd. En zo gaat dat door tot de tien woorden zijn geweest.
    Als er na het tiende woord op de controleer-knop wordt geklikt verschijnt er weer Goedzo of Fout, maar ook verschijnt er hoeveel er in totaal goed waren.

  13. Hoevaak komt een letter voor
    Maak een homepage waarop "Welke letter moet worden geteld" staat, met daar achter een tekstvenster waarin een letter kan worden ingevoerd.
    Daar onder een Button met als opschrift "Lees in en tel".
    Als er op de knop wordt geklikt dan verschijnt er een nieuwe pagina (gegenereerd door hetzelfde document als van de eerste pagina). Op die pagina staan de zelfde dingen als op de eerste pagina. Maar verder een gedicht.
    Het bestand GEDICHT.TXT wordt ingelezen (zet dat bestand eerst in dezelfde map als het php-document)
    Dat gedicht bestaat uit 14 regels (waarvan één lege regel), en dat verschijnt dus op de pagina.
    En ook wordt er geteld hoevaak de ingevoerde letter in het gedicht voorkomt, en dat aantal wordt ook vermeld op de pagina.
    En dan kan er eventueel een andere letter in het tekstvenster worden ingevoerd, en als er dan op de button wordt geklikt wordt het proces herhaald.

  14. Wanneer geboren
    Maak een homepage waarop een regel staat met "Naam" en daar achter een tekstvenster waarin een naam kan worden ingevoerd.
    Daaronder een button met "Geef de geboortedatum"
    Als er op de button met "Geef de geboortedatum" wordt geklikt dan verschijnt er een nieuwe pagina (gegenereerd door hetzelfde document als van de eerste pagina) en dan wordt de geboortedatum opgezocht die hoort bij de ingevoerde naam.
    Daarvoor moet eerst het bestand NAMEN.TXT worden ingelezen (zet dat bestand eerst even in dezelfde map als het php-document)
    In dat bestand NAMEN.TXT staan tien namen en tien geboortedata in 20 regels opgeslagen.
    Telkens staat er een naam op een regel, en in de daarop volgende regel de geboortedatum van die persoon.
    De computer moet dus controleren of de ingevoerde naam voorkomt bij de tien namen uit het bestand. Als het wel voorkomt dan is de geboortedatum bekend, en dan verschijnt die op de pagina, en anders verschijnt er "Deze naam komt niet voor, probeer nog eens"
    En dan kan er een andere naam worden ingevoerd, waarvan de geboortedatum wordt opgezocht.

  15. Klassement van schaatswedstrijden
    Maak een homepage waarop een regel staat met "Naam:" en daarachter drie tekstvenster waarin de namen van de deelnemers kunnen worden ingevoerd.
    Daar onder een regel met "tijd op de 500 m" en daarachter drie tekstvensters waarin de tijden van de deelnemers op de 500 m. kunnen worden ingevoerd.
    Daar onder een regel met "tijd op de 1500 m" en daarachter drie tekstvensters waarin de tijden van de deelnemers op de 1500 m. kunnen worden ingevoerd.
    Daar weer onder een regel met "tijd op de 5000 m" en daarachter drie tekstvensters waarin de tijden van de deelnemers op de 5000 m. kunnen worden ingevoerd.
    En tenslotte een regel met "tijd op de 10000 m" en daarachter drie tekstvensters waarin de tijden van de deelnemers op de 10000 m. kunnen worden ingevoerd.
    Daar onder een button met "Geef het klassement"
    Als er op de knop wordt geklikt dan verschijnt er een nieuwe pagina.
    Op die pagina staan de namen en daarachter het totaal aantal punten van de deelnemers.
    Daarin moet zijn gesorteerd op het aantal punten, de winnaar bovenaan.
    Aanwijzing :
    Het programma rekent tijden om naar seconden en berekent voor elke afstand de tijd om naar 10000 m.
    Tijden worden ingevoerd als minuten : seconden.
    Voorbeeld : tijd op 5000 m is 7:15,2 -> dat is 435,2 seconden
              Omrekenen naar 10000 m, dus 435,2 x 2 = 870,4 punten
    Het puntentotaal is de som van de punten behaald op de vier afstanden

  16. a. Maak een homepage waarop een regel staat met "Kies de extensie" en daar achter een pulldown-menu waarbij gekozen kan worden uit GIF en JPG.
    Daar onder een regel waar op staat: "Kies bestand", met daar achter een tekstvenster waarin de naam van een bestand kan worden ingevoerd om te uploaden. Ook moet er gebladerd kunnen worden. Daaronder een button met "Uploaden"
    Als er op de button met "Uploaden" wordt geklikt dan wordt het ingevoerde bestand geupload, tenminste als het de extensie heeft die in het pulldown-menu is gekozen.
    Als het niet de juiste extensie heeft dan wordt dat gemeld, en dan wordt het niet geupload.
    Als het wel de juiste extensie heeft dan wordt het geupload, en dan wordt de bestandsgrootte gemeld.

    65b.
    Maak een homepage waarop een regel staat met "Kies de extensie" en daar achter een pulldown-menu waarbij gekozen kan worden uit GIF en JPG.
    Daaronder een button met Laat ze zien en ook nog een button met Verwijder
    Als er op de button met "Laat ze zien" wordt geklikt dan verschijnt er een nieuwe pagina waarop de namen van alle gif- of jpg-bestanden (afhankelijk van wat in het pulldown-menu is gekozen), die in de map staan, getoond worden, met een aanvinkvakje ervoor.
    Verder wordt het zo gemaakt dat, als je op de naam van zo'n plaatjesbestand klikt, het plaatje getoond wordt.
    Verder is het zo dat als je op een aanvinkvakje voor een bestand klikt, en je klikt daarna op de knop met Verwijderen, het bestand wordt verwijderd.
    Het moet zo gemaakt worden dat m.b.v. PHP de computer die bestanden zelf opzoekt, dus je moet niet zelf die namen allemaal gaan invoeren.

  17. a. Maak een homepage waarop een regel staat met "Kies de extensie" en daar achter twee radiobuttons met de opties TXT en DOC.
    Daar onder een regel waar op staat: "Kies bestand", met daar achter een tekstvenster waarin de naam van een bestand kan worden ingevoerd om te uploaden. Ook moet er gebladerd kunnen worden. Daaronder een button met "Uploaden"
    Als er op de button met "Uploaden" wordt geklikt dan wordt het ingevoerde bestand geupload, tenminste als het de extensie heeft die met de radiobuttons is gekozen.
    Als het niet de juiste extensie heeft dan wordt dat gemeld, en dan wordt het niet geupload.
    Als het wel de juiste extensie heeft dan wordt het geupload, en dan wordt de bestandsgrootte gemeld.

    66b.
    Maak een homepage waarop een regel staat met "Kies de extensie" en daar achter een pulldown-menu waarbij gekozen kan worden uit TXT en DOC.
    Daaronder een button met Laat ze zien en ook nog een button met Verwijder
    Als er op de button met "Laat ze zien" wordt geklikt dan verschijnt er een nieuwe pagina waarop de namen van alle txt- of doc-bestanden (afhankelijk van wat in het pulldown-menu is gekozen), die in de map staan, getoond worden, met een aanvinkvakje ervoor.
    Verder wordt het zo gemaakt dat, als je op de naam van zo'n tekstbestand klikt, de tekst getoond wordt.
    Verder is het zo dat als je op een aanvinkvakje voor een bestand klikt, en je klikt daarna op de knop met Verwijderen, het bestand wordt verwijderd.
    Het moet zo gemaakt worden dat m.b.v. PHP de computer die bestanden zelf opzoekt, dus je moet niet zelf die namen allemaal gaan invoeren.

  18. a. Maak een homepage waarop een regel staat met "Kies de extensie" en daar achter twee radiobuttons met de opties HTM en PHP.
    Daar onder een regel waar op staat: "Kies bestand", met daar achter een tekstvenster waarin de naam van een bestand kan worden ingevoerd om te uploaden. Ook moet er gebladerd kunnen worden. Daaronder een button met "Uploaden"
    Als er op de button met "Uploaden" wordt geklikt dan wordt het ingevoerde bestand geupload, tenminste als het de extensie heeft die met de radiobuttons is gekozen.
    Als het niet de juiste extensie heeft dan wordt dat gemeld, en dan wordt het niet geupload.
    Als het wel de juiste extensie heeft dan wordt het geupload, en dan wordt de bestandsgrootte gemeld.

    67b.
    Maak een homepage waarop een regel staat met "Kies de extensie" en daar achter een pulldown-menu waarbij gekozen kan worden uit HTM en PHP.
    Daaronder een button met Laat ze zien en ook nog een button met Verwijder
    Als er op de button met "Laat ze zien" wordt geklikt dan verschijnt er een nieuwe pagina waarop de namen van alle htm- of php-bestanden (afhankelijk van wat in het pulldown-menu is gekozen), die in de map staan, getoond worden, met een aanvinkvakje ervoor.
    Verder wordt het zo gemaakt dat, als je op de naam van zo'n htm- of php-bestand klikt, de inhoud in een apart venster m.b.v. de browser getoond wordt.
    Verder is het zo dat als je op een aanvinkvakje voor een bestand klikt, en je klikt daarna op de knop met Verwijderen, het bestand wordt verwijderd.
    Het moet zo gemaakt worden dat m.b.v. PHP de computer die bestanden zelf opzoekt, dus je moet niet zelf die namen allemaal gaan invoeren.

  19. Een hotelreserveringssysteem.
    In deze opgave ga je voor een hotel de volgende php-scripts maken:
    • Een script voor het inloggen van hotelgasten, die al gerigistreerd zijn (inlog.php), waarbij gecontroleerd wordt of de gebruikersnaam en het wachtwoord in de tabel "klanten" voorkomt.
    • Een script voor het registreren van hotelgasten (registratie.php). Daarbij worden de ingevoerde gegevens toegevoegd aan de tabel "klanten".
    • Een script waarmee klanten kamers enz. kunnen reserveren. Daarbij worden de ingevoerde gegevens opgeslagen in de tabel "reserveringen", en verder wordt aangegeven hoeveel de klant moet betalen (reservering.php)
    De tabel "klanten", die gebruikt wordt om de inloggegevens te controleren, en waaraan nieuwe gegevens toegevoegd kunnen worden m.b.v. het registratieformulier, bevat de volgende velden:
    Het id (auto_increment), de gebruikersnaam, het wachtwoord, de voornaam, tussenvoegsel, achternaam, telefoonnummer en aanmelddatum.
    Deze tabel is al voor je aangemaakt in PHPMyAdmin, er zit één klant in.

    De tabel "reserveringen", waarin de gegevens komen van een reservering, bevat de volgende velden:
    Het id (integer, auto_increment), klant_id (integer), kamertype, nachten (integer), ontbijten (integer), lunches (integer), diners (integer), begindatum.
    Deze tabel is ook voor je aangemaakt in PHPMyAdmin, er zit één aanmelding in.
    1. Het inlogsysteem

      Het inlogscherm (inlog.php) ziet er als volgt uit:

          
        Inloggen in het reserveringssysteem 
          
        Gebruikersnaam  
        Wachtwoord  
          
        15-12-2006  
          
        Nog niet geregistreerd ? Registreer nu
       

      Verder moet je er om denken dat:
      • De datum wordt automatisch onder de invoervelden geplaatst in het formaat: dag-maand-jaar.
      • Klikken op de link "Registreer nu!" brengt het registratieformulier in beeld
      • Als er niets of te weinig wordt ingevuld verschijnt het inlogscherm opnieuw.
      • Als de inloggegevens kloppen wordt de reserveringspagina getoond.

    2. Het registratiescherm (registratie.php) ziet er als volgt uit:

          
        Vul onderstaande gegevens in en registreer 
          
        Gebruikersnaam  
        Wachtwoord  
        Voornaam  
        Tussenvoegsel  
        Achternaam  
        Telefoonnummer  
          
        16-12-2006  
          

      Verder moet je er om denken dat:
      • De datum wordt automatisch onder de invoervelden geplaatst in het formaat: dag-maand-jaar.
      • Klikken op de knop "Registreer" zorgt ervoor dat de gegevens in de tabel klanten worden opgeslagen.
      • Door het formulier niet of onvolledig in te vullen krijg je de melding onder het registratiescherm om de andere gegevens ook in te vullen en opnieuw te registreren.
      • Als de gegevens succesvol in de database zijn opgeslagen, wordt de reserveringspagina getoond.

    3. Het reserveringsscherm ziet er als volgt uit:

          
        Reserveer een hotelkamer 
          
        Klantnummer  
        Type kamer Eenpersoons à € 50,-
         Tweepersoons à € 50,-
        Aantal overnachtingen
        Aantal ontbijten à € 8,-
        Aantal lunches à € 10,-
        Aantal diners à € 20,-
          
        16-12-2006  
          

      Verder moet je er om denken dat:
      Klikken op de knop "Reserveer" zorgt ervoor dat de gegevens in de tabel reservering worden opgeslagen.
      Verder wordt een overzicht van het verblijf met het te betalen bedrag getoond op de volgende manier:

      De reserverings-gegevens zijn op 16-12-2006 aan de database toegevoegd
       
      U heeft klantnummer 12 en u heeft een tweepersoons kamer besteld
      U heeft een verblijf van 5 overnachtingen gereserveerd. Kosten € 375,-
      U wilt de volgende maaltijd(en) gebruiken:
      ontbijt: 10 maal Kosten € 80,-
      lunch ('s middags): 4 maal Kosten € 40,-
      diner ('s avonds): 4 maal Kosten € 80,-
       
      De totaalprijs voor het verblijf in ons hotel is € 575,-
       
      U kunt pinnen aan de balie na uw verblijf in ons hotel
       
      Bedankt voor uw boeking en tot ziens in ons hotel!
       


  20. Een website met vakantie-aanbiedingen
    In deze opgave ga je de volgende php-scripts maken:
    • Een webpagina waarin de vakantie aanbiedingen worden getoond (lastminute.php).
    • Een webpagina waarmee de beheerder van de website nieuwe vakantie aanbiedingen kan toevoegen aan de database (beheerder.php).
    De database bestaat slechts uit één tabel aanbiedingen, waarin de last-minute aanbiedingen worden opgeslagen.

    De tabel aanbiedingen bestaat uit de velden:
    • nummer, het is een integer en auto_increment.
    • titel
    • datum, dit is de uiterste boekingsdatum van de aanbieding.
    • inhoud, dit is een korte beschrijving van de aanbieding.
    • prijs, dat is een kommagetal (float)
    • foto, in dit veld staat de bestandsnaam van de foto, die hoort bij de aanbieding.
    Deze tabel is al voor je aangemaakt in PHPMyAdmin, er zitten twee aanbiedingen in (en wel de twee onderstaande).
    1. De webpagina bestemd voor de bezoeker: lastminute.php
      Als deze pagina wordt geopend dan kan uit een prijsklasse worden gekozen, en uit een databereik, en daarna worden alle last-minute aanbiedingen getoond, die zijn opgeslagen in de tabel aanbiedingen, en die voldoen aan de criteria.
      Dat ziet er als volgt uit:

      Last-minute aanbiedingen

      Last-minute boekingen

      All-inclusive vijfsterren hotel Central
      Aanbieding geldig tot 20-02-2007
      We hebben op het laatste moment beslag weten te leggen op een flink aantal
      kamers in dit schitterende hotel, dat nog maar pas is geopend.
      Een nachtclub, sauna en fitness zijn aanwezig om u van 's ochtends vroeg tot 's avonds laat
      in de watten te leggen!

      Prijs: € 375,-


      Studio's Beach in Allicante
      Aanbieding geldig tot 25-01-2007
      Allicante aan de Turkse Rivièra staat bekend om zijn bruisende uitgaansleven en
      uitgestrekte kiezelstranden. Hier kunt tegen een afbraakprijs een studio huren, die voorzien
      is van drie slaapplaatsen, een keuken, en toilet + douche

      Prijs: € 295,-


       

    2. De webpagina bestemd voor het beheren van de aanbiedingen: beheeraanbiedingen.php
      De beheerder van de website kan m.b.v. een formulier de gegevens van de tabel met de last-minute aanbiedingen wijzigen.
      De inhoud van het formulier wordt verwerkt door een script, dat de inhoud eerst controleert.
      Als niet alle gegevens zijn ingevuld verschijnt het formulier weer.
      Als alle gegevens zijn ingevuld worden de gegevens m.b.v. het script toegevoegd aan de database, en verder verschijnt er een scherm waarop bevestigd wordt dat de gegevens zijn ingevoerd.
      Denk er om dat in de database alleen de naam van de foto wordt opgeslagen, en dat de foto zelf nog apart moet worden geüoad.
      Hieronder zie je het formulier voor de beheerder.

          
        Lastminute-vakanties beheer 
          
        Kopregel v.d. aanbieding  
       Datum tot welke de aanbieding geldig is  
       Beschrijving van de aanbieding  
       Prijs van de aanbieding  
       Naam van de foto bij de aanbieding  
          
        16-12-2009  
          


  21. Een enquete opzetten
    Je moet in deze opdracht een enquete, die ingevuld kan worden via het Internet, opzetten.
    In deze opgave ga je de volgende php-scripts maken:
    • Een webformulier met een aantal vragen.
    • Een PHP-script, dat de gegevens uit de ingevulde enquete opslaat in een database
    • Een PHP-script, dat een grafische weergave van alle resultaten toont op het beeldscherm.
    De database bestaat slechts uit één tabel "reacties", waarin de antwoorden van de bezoekers worden opgeslagen.

    De tabel reacties bestaat uit de velden reactienr, waardering en leeftijd.
    Het veld reactienr is een integer, het is auto_increment.
    In de velden waardering en leeftijd worden de antwoorden van de bezoekers opgeborgen, als tekst.
    De enquete bestaat slechts uit twee vragen. De bezoeker kan een waardering geven voor de website, en hij kan aangeven hoe oud hij is.
    Als waardering kunnen alleen de woorden "geweldig", "middelmatig" en "slecht" worden gegeven, m.b.v. radiobuttons.
    Als leeftijd kan gekozen worden uit "10-14", "15-19", "20-24","25-30" en "30+" en "10-", ook m.b.v. radiobuttons (zie hieronder).
    Deze tabel is al voor je aangemaakt in PHPMyAdmin, er zitten twee racties in.

    Hieronder zie je het invulformulier, dat wordt opgevraagd m.b.v. het document "enquete.htm":

        
     

    Enquete

     
     Wat geef je als waardering
    voor deze website?
     
    geweldig
    middelmatig
    slecht
     
        
     In welke
    leeftijdscategorie zit je?
    10 -
    10-14
    15-19
    20-24
    25-29
    30 +
        
         
        

    Het PHP-script "verwerkenquete.php" controleert of beide vragen zijn ingevuld. Als niet beide vragen zijn beantwoordt verschijnt het invulformulier weer. Anders verschijnt een bevestigingsformulier, waarop de gegeven antwoorden nog eens getoond worden.
    Verder wordt vermeld hoeveel enquetes zijn ingevuld.
    Verder worden de verschillende antwoorden op de twee vragen geteld en afgedrukt.
    En verder wordt er een grafische weergave met staafdiagrammen gemaakt zoals hieronder.
    (Als zo'n staaf het getal 15 aan geeft dan maak je die staaf m.b.v. de opdracht <img src="blok.jpg" width=150>)

    Enquete

     
    U vulde het volgende in:
    Waardering voor de site: middelmatig
    Leeftijdscategorie: 15-19
      
    Aantal ingevulde enquetes: 35
    Waardering:
    geweldig: 20
    middelmatig: 10
    slecht: 5
    Leeftijd:
    10 - : 0  
    10-14 : 7
    15-19 : 15
    20-24 : 10
    25-29 : 2
    30 + : 1
      


  22. Een toetssysteem per computer
    Je moet in deze opdracht een toets, die gemaakt kan worden via het Internet, opzetten.
    In deze opgave ga je de volgende php-scripts maken:
    • De leerling krijgt een aanmeldscherm voor zich, waar hij zijn naam, zijn klas en het computernummer moet invullen (login.php) Het inlogscherm ziet er als volgt uit (denk ook om de juiste datum):

          
       

      Aanmelden voor de toets

       
       Naam  
       Klas 
       Computernummer 
          
        15-12-2009  
          

    • Het script, dat voor de verwerking van het inlogscherm zorgt (verwerkinlog.php), zorgt er voor dat die gegevens nog even getoond worden. En daaronder krijgt de leerling vijf vierkeuzevragen te zien.
      Die vragen met de keuzeantwoorden zijn opgeslagen in een tabel "toetsvragen". Die tabel bevat 7 velden: vraagnummer (dat is een integer), vraag, antw1, antw2, antw3, antw4, goednummer (dat is een integer).
      Die tabel is aanwezig, en hij is ook gevuld met 5 records. Er zijn dus 5 vragen met steeds 4 antwoorden waaruit gekozen kan worden, en het nummer van het goede antwoord.
      Zorg er voor dat deze vragen met de bijbehorende antwoorden op het scherm komen, en dat de leerling uit éeacute;n van de antwoorden kan kiezen.
      Als de leerling de vragen heeft beantwoord, moet hij of zij op een knop drukken waarop "Verzend de antwoorden" staat.

          
       

      Gegevens

       
       Naam:Piet Andringa 
       Klas:v6a 
       Computernummer:12 
       Datum:15-12-2009 
       

      Toets

       
       1. Deze vraag gaat over: welk soort werk is projectwerk. Welke bewering is niet waar?  
        Projectwerk zit tussen routinematig werk en improviseren  
        Er wordt vaak projectmatig werk van gemaakt als het werk erg gecompliceerd is  
        Het doel van een project staat niet van tevoren vast  
        Een project is altijd eindig, er wordt altijd vastgelegd hoe lang het mag duren  
       2. enz. enz. Nu volgen nog 4 vragen met elk vier keuze-antwoorden
          
           
          

    • Dan wordt er een nieuw script gestart ("verwerkvragen.php") dat de antwoorden verwerkt, en er voor zorgt dat de antwoorden plus de totaalscore worden opgeslagen in een tabel "toetsuitslagen". Ook wordt de naam, de klas, het computernummer en de datum in die tabel opgeslagen.
      Deze tabel bevat de velden id (integer, auto_increment), naam, klas, computernummer (integer), datum, antw1 (integer), antw2 (integer), antw3 (integer), antw4 (integer), antw5 (integer), eindresultaat (integer). Deze tabel bestaat al, de gegevens van één leerling zitten er in.
      Het eindresultaat is het cijfer van de leerling, per goed beantwoorde vraag krijgt hij of zij twee punten.


  23. Inschrijven voor een jeugdtennistoernooi
    In deze opgave ga je de volgende php-scripts maken:
    • Maak een inschrijfformulier voor een jeugdtennistoernooi. ("inschrijf.htm")
      Daarop moet o.a. de rating bij de KNVB (een cijfer van 1 tot en met 9) worden opgegeven. Bij tennis is 1 de hoogste rating, dat hebben alleen de topspelers. En als je net begint krijg je de rating 9.
      Verder moeten ze opgeven aan welke categorie ze mee willen doen, daarbij kunnen ze kiezen uit 5 t/m 7
      Meestal kies je de categorie van je rating, dus als je rating 7 hebt schrijf je in voor categorie 7.
      Je mag wel hoger inschrijven dan je rating maar niet lager (dus een speler met als rating 6 bijvoorbeeld kan niet in de categorie 7 inschrijven, maar wel in de categorie 5).
      Er mag alleen voor de categorieën 5, 6 en 7 worden ingeschreven.
      Alle velden, behalve 'tussenvoegsel', moeten beslist worden ingevuld.

      Het inschrijfformulier ziet er als volgt uit:

          
       Inschrijven voor het jeugd-tennistoernooi 
          
       Voornaam  
       Tussenvoegsel:  
       Achternaam:  
       Vereniging:  
       Wat is je leeftijd?  
       rating bij de KNVB  
       In welke categorie wil je meedoen? 5
      6
      7
       
          

    • Als de deelnemer alle velden heeft ingevuld en op OK klikt, dan wordt het script "verwerkinschrijf.php" gestart. Er wordt gecontroleerd of alles goed is ingevuld. Als dat niet het geval is verschijnt het formulier weer.
      En anders krijgt de inschrijver een overzicht met de dingen die hij of zij opgegeven heeft, en worden de gegevens in de tabel "toernooi" opgeslagen
      Die tabel bevat de volgende velden: id (integer, auto-increment), voornaam, tussenvoegsel, achternaam, tennisclub, leeftijd (integer), rating (integer), categorie (integer), poule
      Deze tabel bestaat al, de gegevens van één jeugdlid zitten er in.
    • De wedstrijdleider kan m.b.v. een ander script (wedstrijdleider.php) de deelnemerslijst bekijken. Daarbij wordt per categorie getoond wie er hebben ingeschreven.
      Het formulier voor de wedstrijdleider ziet er als volgt uit:

       

      Pouleindeling tennistoernooi

       
       Hier een lijstje van alle spelers in categorie 5 
          
       Hier een lijstje van alle spelers in categorie 6 
          
       Hier een lijstje van alle spelers in categorie 7 
          



  24. Een website met auto-occasions
    De database bestaat slechts uit één tabel occasions, waarin de gegevens van gebruikte auto's worden opgeslagen.

    De tabel occasions bestaat uit de velden:
    • nr, het is een integer en auto_increment.
    • merk
    • bouwjaar
    • omschrijving, dit is een korte beschrijving van de aanbieding.
    • occasionprijs, dat is een kommagetal (float)
    • occasionfoto, in dit veld staat de bestandsnaam van de foto, die hoort bij de aanbieding.
    Deze tabel is al voor je aangemaakt in PHPMyAdmin, er zit één occasion in.

    In deze opgave ga je de volgende php-scripts maken:
    • Een website met een formulier waarop de gegevens van een nieuwe occasion kunnen worden ingevoerd.
      Daarin moeten de volgende gegevens worden ingevoerd:
      • het merk
      • het bouwjaar
      • de omschrijving (dit is een korte beschrijving van de aanbieding)
      • de prijs
      • de naam van de foto (de bestandsnaam van de foto, die hoort bij de aanbieding)
      Het script, dat dit formulier verwerkt, moet er voor zorgen dat de ingevoerde gegevens in de database worden vastgelegd.
    • Een webpagina waarin de auto-occasions worden getoond (occasions.php).

      De webpagina bestemd voor de bezoeker heet occasion.php
      Als deze pagina wordt geopend dan kan er worden aangegeven welke occasions er moeten worden getoond. Je moet het bouwjaar (vanaf welk jaar) aangeven, en als je dan klikt op "Toon de occasions" dan worden ze getoond, met foto (de fotobestanden moet je apart uploaden).
      De webpagina bestemd voor de bezoeker ziet er als volgt uit:

          
       

      Welkom op de website van Used Cars.

       Bij ons vindt u het grootste occasion aanbod van heel Nederland.
       Allemaal jonge gebruikte auto's, die van top tot teen gecontroleerd zijn door de dealer.
       En natuurlijk voorzien van 3 maanden BOVAG garantie!
       Een mooie gebruikte auto uitzoeken doet u voortaan vanuit uw luie stoel!
       En heeft u de auto van uw dromen gevonden? Dan is het contact met de dealer zo gelegd!
       U kunt auto's selecteren op bouwjaar.
        Selecteer bouwjaar:
           
          


  25. Een muziekdatabase
    Het is de bedoeling de gegevens van een aantal CD's, DVD's, mp3's, enz. in een database vast te leggen. Je moet gegevens aan de database kunnen toevoegen en de gegevens moeten ook getoond kunnen worden, en daarbij moet je kunnen zoeken naar speciale gegevens, bijvoorbeeld: genre, titel, De database bestaat slechts uit één tabel cd, waarin de gegevens van gebruikte auto's worden opgeslagen. De database bestaat slechts uit één tabel cd, waarin de gegevens van de CD's, DVD's en mp3's worden opgeslagen.

    De tabel cd bestaat uit de velden:
    • muzieknr (integer, auto_increment)
    • titel (char(30))
    • uitvoerende (char(30))
    • jaar van uitgifte (integer)
    • medium (char(10))
    • genre (char(20))

    Deze tabel is al voor je aangemaakt in PHPMyAdmin, de gegevens van twee cd's zitten er in.

    In deze opgave ga je de volgende php-scripts maken:
    • Een webformulier waarin de gegevens van een CD, DVD of mp3 kunnen worden ingevoerd.
      Daarin moeten de volgende gegevens worden ingevoerd:
      • de titel
      • de uitvoerende(n)
      • het jaar van uitgifte
      • het medium, daarbij kan m.b.v. een pulldown-menu gekozen worden uit CD, DVD, MP3
      • het genre
      Het script, dat dit formulier verwerkt, moet er voor zorgen dat de ingevoerde gegevens in de database worden vastgelegd.
    • Een webpagina waarin gegevens van een aantal CD's, DVD's of MP3's worden getoond.

      Als deze pagina wordt geopend dan kan er worden aangegeven van welke uitvoerende(n) de gegevens moeten worden getoond. Je moet in een tekstvenster de naam van de uitvoerende(n) invoeren, en als je dan klikt op "Toon de muziekdragers" dan worden ze getoond.