H6: Create: Van formulier naar database

Create: van formulier naar database
WDV-III en DBS-I
Les H6 / Week 3
1 / 28
next
Slide 1: Slide
Applicatie- en mediaontwikkelaarMBOStudiejaar 1

This lesson contains 28 slides, with interactive quizzes, text slides and 1 video.

time-iconLesson duration is: 120 min

Items in this lesson

Create: van formulier naar database
WDV-III en DBS-I
Les H6 / Week 3

Slide 1 - Slide

Even terugblikken

Slide 2 - Slide

Doelen van vandaag
  • Je kunt een formulier maken en bijhorende code in de controller schrijven om een nieuw item in te voegen in de database-tabel.
  • Je gebruikt PDO om met de database te werken; er is één verbinding in het hele project en je gebruikt bovendien placeholders en prepared statements bij het uitvoeren van een query.
  • Je schrijft een query eerst met gebruik van placeholders volgens de ":a" techniek.
  • Je hebt slechts één verbinding in je project, deze haal je erbij met require_once.
  •  Je zet de query met placeholders om naar een prepared statement en voert het uit.
  • Je kunt data zowel op de front-end als de back-end valideren of ze niet leeg zijn of indien nodig een getal bevatten.
  • Je toont een zinnige foutmelding aan de gebruiker, dit mag in de controller.
  • Je kunt inputs voorzien van de juiste attributen om ook hier validatie te doen.

Slide 3 - Slide

Eindproduct van vandaag:

Slide 4 - Slide

0

Slide 5 - Video

Formulier versturen, hoe zat het ook alweer?
  • Formulier maak je in HTML
  • Verstuur naar controller in de backend
  • In PHP haal je ingevulde waarde uit het name-attribuut met $_POST['name'].
  • Een opgehaald gegeven sla je op in een variabele 

Slide 6 - Slide

Formulier versturen, hoe zat het ook alweer? (HTML)
  • We maken het formulier met de <form>-tag
  • Het formulier heeft twee attributen: action en method
  1. action: waar sturen we het formulier naartoe. Geef het pad mee.
  2. method: manier van versturen: POST
  • In het form zitten labels (tekst bij een input behorend).
  • input / select / textarea: velden die je gebruikt om de input van de gebruiker op te slaan. Altijd een name-attribuut.

Slide 7 - Slide

Op welke manier versturen we een formulier
A
GET
B
POST

Slide 8 - Quiz

Welk attribuut gebruiken we voor onze input, om vanuit onze controller in PHP de gegevens op te halen?
A
type
B
name
C
value
D
placeholder

Slide 9 - Quiz

Welk attribuut geeft informatie over het soort inputveld dat ik gemaakt heb?
A
type
B
name
C
value
D
placeholder

Slide 10 - Quiz

6.4 Opdracht: opzetten ontwikkelomgeving

Slide 11 - Slide

Mappenstructuur
  • backend/
              config.php
              conn.php
              resource1Controller.php
              resource2Controller.php
  • css/
  • img/
  • resource1/ 
              index.php
              create.php
              ............
  • resource2/
              index.php
              ......
index.php
header.php
........

Slide 12 - Slide

PHP verbinden met database

Slide 13 - Slide

Een query uitvoeren
1. Pak de databaseverbinding erbij.
2. Schrijf de query met placeholders.
3. Zet de query om naar een ‘prepared statement’.
4. Voer de statement uit, geef nu de ingevulde waarden mee.
En alleen voor een SELECT-query:
5. Haal het resultaat op (‘fetch’)

Slide 14 - Slide

Slide 15 - Slide

Slide 16 - Slide

Placeholders

  • :voorbeeld ----> $voorbeeld
  • Voorkomen van misbruiken van het formulier 
  • SQL-injectie voorkomen

Slide 17 - Slide

Opdracht 6.8 - INSERT-query uitvoeren

Slide 18 - Slide

Gebruiker terugsturen
  • Ingezonden informatie staat in de database
  • Gevolg is een witte pagina.
  • Controller is enkel om actie uit te voeren.
  • Gebruiker terug naar index-pagina sturen
  • Melding meegeven

Slide 19 - Slide

Opdracht 6.10 - Redirect toevoegen

Slide 20 - Slide

Een select (dropdown) versturen
  • Input type waarbij je opties geeft in dropdown.
  • Werkt in PHP hetzelfde als andere input
  • Het name attribuut vinden we in het select-element.
  • Het value-attribuut komt in PHP terecht.

Slide 21 - Slide

Checkbox versturen/ ontvangen
  • Alleen afvangen als deze is aangevinkt. 
  • isset()-functie om te controleren of de waarde bestaat in de $_POST-variabele.
  • Als variabele niet aanwezig is wordt deze op 'false' gezet.
  • Label-tags voor aangeven soort veld en uitleg specificatie vinkje.

Slide 22 - Slide

Opdracht 6.13 - Formulier afmaken
Wat: opdracht 6.13 in HTML en php
Hoe: in Sublime, phpmyadmin en browser
Uitkomst: succesvolle test, waarbij het toegevoegd is
Klaar: huiswerk van andere vakken bijwerken.
timer
15:00

Slide 23 - Slide

Don't trust the user: inputvalidatie
Controleren van de ingevulde formulier-waarden
Is een veld niet leeg? Is de leeftijd wel echt een getal?

Slide 24 - Slide

$errors[ ]
Je krijgt hiermee errors in een lijst (array).
Als de lijst bestaat, dumpen we alle errors en stoppen het script.

Slide 25 - Slide

Opdracht 6.15 - Validatie

Slide 26 - Slide

Zelf oefenen met CREATE
Wat: Opdracht 6.15, dan de herhalingsoefening van hoofdstuk H6 maken
Hoe: moduleboekje WDV-III en DBS-I pagina 28 en 29
Hulp: je buurman - daarna de docent
Tijd: 60 minuten
Uitkomst: een werkend formulier, waarbij ik gegevens aan de database kan toevoegen
Klaar: weekcheck H6 inleveren
timer
1:00:00

Slide 27 - Slide

Weekcheck H6: Storingsmelding
  • We beginnen deze week rustig aan: de weekcheck bestaat simpelweg uit het maken van alle opdrachten uit hoofdstuk 1. Als je klaar bent, kun je dus een storingsmelding aanmaken op dezelfde manier als in het filmpje uit paragraaf 2: https://youtu.be/FCmbeLvbUbg.
  • Inleveren: screenshot(s) van je meldingen/create.php en backend/meldingenController.php

Slide 28 - Slide