PHP 2 - variabelen, POST, GET, fgets, bindParam, trim, htmlspecialchars, superglobal

1 / 34
volgende
Slide 1: Tekstslide
InformaticaWOStudiejaar 4,5

In deze les zitten 34 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 45 min

Onderdelen in deze les

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Fundament

D. Programmeren met PHP
Hoofdstuk 2.1 tmt 2.6
https://fundament-online.nl/leeromgeving/content.php?id=49121

Slide 2 - Tekstslide

Deze slide heeft geen instructies

Leerdoelen
Na deze les kun je (met PHP):
  • variabelen declareren
  • 3 don't's benoemen van variabelen benoemen
  • 3 verschillende manieren benoemen om input te krijgen
  • verschil uitleggen tussen die manieren
  • PHP functie benoemen waarmee je (SQL) input ontsmet
  • aangeven wat een superglobal variable is

Slide 3 - Tekstslide

Rode achtergrond betekent: klas is stil, dit zijn de leerdoelen en quizzes waarbij niet overlegd mag worden.

Doel van deze les is om het leren zichtbaar te maken voor zowel leerling als docent.
Variabelen 1/3
Net als Python en JavaScript heeft ook PHP variabelen
Een variabelenaam in PHP:
  • begint met een $
  • begint niet met een cijfer en heeft geen spaties
  • bevat alleen letters, cijfers en _
  • bij meerdere woorden gebruik je camelCase
  • schrijf woorden in variabelen uit maar hou het kort!

Slide 4 - Tekstslide

Deze slide heeft geen instructies



Goed:
  • $gemiddeldeTemperatuur
  • $naam
  • $achternaam
  • $bestandsNaam
  • $huidigeDag


Fout:
  • $gemiddelde Temperatuur
  • $1Naam
  • $achter Naam
  • $achter#naam
  • $class
Variabelen 2/3

Slide 5 - Tekstslide

Deze slide heeft geen instructies

Variabelen 3/3
Declareren gaat zo in PHP:

$huidigeDag = "Woensdag";
$getal = 3;
$laterInTeVullen;
$laterInTeVullen = true;

Slide 6 - Tekstslide

Deze slide heeft geen instructies

PHP en HTML
PHP en HTML kunnen in 1 bestand staan (dat zagen we al met echo), maar je kunt ook in HTML bestanden naar PHP bestanden verwijzen

Zo wordt in een .html bestand het bestand process.php aangeroepen:

Slide 7 - Tekstslide

Deze slide heeft geen instructies


Welke van deze PHP
variabelen is niet correct?
A
$first_name
B
$_age
C
$1stplace
D
$userName

Slide 8 - Quizvraag

Deze slide heeft geen instructies


Welke van deze PHP
variabelen is niet correct?
A
$carModel
B
$Car_model
C
$_username
D
$user!Name

Slide 9 - Quizvraag

Deze slide heeft geen instructies


Welke van deze PHP
variabelen is niet correct?
A
$email.address
B
$Car_model
C
$_userName
D
$product_price

Slide 10 - Quizvraag

Deze slide heeft geen instructies


Welke van deze PHP
variabelen is niet correct?
A
$this_Year
B
$_thisYear
C
$thisYear
D
$this-Year

Slide 11 - Quizvraag

Deze slide heeft geen instructies

Input van gebruiker
Er zijn een aantal manieren in PHP om input te krijgen van de bezoeker/gebruiker, zoals:

  • formulier via de POST-methode
  • formulier via de GET-methode
  • via PHP commandoregel (CLI) fgets(STDIN)

Slide 12 - Tekstslide

Deze slide heeft geen instructies

POST en GET 1/2
Een website heeft twee manieren om formulieren te versturen: POST en GET

  • met POST de gegevens worden via de body verzonden
  • met GET de gegevens worden via de URL verzonden

Slide 13 - Tekstslide

Deze slide heeft geen instructies

POST en GET 2/2
Via POST is de informatie dus niet zichtbaar in de adresbalk, en via GET wel, waarom is dat belangrijk?

Slide 14 - Tekstslide

Deze slide heeft geen instructies

POST en GET 2/2
Via POST is de informatie dus niet zichtbaar in de adresbalk, en via GET wel, waarom is dat belangrijk?

Dat is belangrijk omdat gegevens zichtbaar zijn... zoals
  • in de adresbalk 
  • in de browsergeschiedenis 
  • in serverlogs

Slide 15 - Tekstslide

Deze slide heeft geen instructies

fgets(STDIN)
via de PHP functie fgets() in combinatie met STDIN kan ook input van de gebruiker worden gevraagd in PHP


Slide 16 - Tekstslide

Deze slide heeft geen instructies

Benoem 2 manieren om in PHP
input te vragen van de gebruiker
timer
1:00

Slide 17 - Open vraag

Deze slide heeft geen instructies

bindParam()
Met de PHP functie bindParam() voorkom je met SQL-injecties ... hier zullen we later verder op ingaan 

hier 
alvast een 
voorbeeld:

Slide 18 - Tekstslide

Deze slide heeft geen instructies

htmlspecialchars() en trim()
Met de PHP functie htmlspecialchars() schoon je de input en voorkom je XSS-aanvallen

XSS-aanvallen zijn zgn. cross-site scripting aanvallen

Met trim() worden spaties en enters voor en na de invoer automatisch verwijderd

Slide 19 - Tekstslide

Deze slide heeft geen instructies

Zoek op wat een XSS-aanval
is en omschrijf het in 1 zin
timer
3:00

Slide 20 - Open vraag

Deze slide heeft geen instructies

Let op
Let op:
  • het <?php ... ?> blok kan ook 
     binnen de <html> tags staan!

  • De plek van de HTML uit de
     echo regels zijn afhankelijk
     van de plek in het bestand

Slide 21 - Tekstslide

Deze slide heeft geen instructies

GET           <---->       POST

Slide 22 - Tekstslide

Deze slide heeft geen instructies

    GET          
Aantal verschillen:
  • GET <-> POST
  • && isset($_GET...
     isset() bepaalt of een
     functie een waarde
     heeft (POST is
     ontvangen, GET is
     ophalen)

Slide 23 - Tekstslide

Deze slide heeft geen instructies


Wat is het belangrijkste verschil tussen de GET- en POST-methoden in PHP?
A
GET verstuurt gegevens in de HTTP-header, POST in de URL
B
GET verstuurt gegevens via de URL, POST verstuurt gegevens via de body van het verzoek
C
GET en POST zijn identiek, behalve de snelheid.
D
GET wordt alleen gebruikt voor het uploaden van bestanden, POST alleen voor tekst

Slide 24 - Quizvraag

Deze slide heeft geen instructies


Wat is het belangrijkste verschil tussen de GET- en POST-methoden in PHP?
A
GET verstuurt gegevens in de HTTP-header, POST in de URL
B
GET verstuurt gegevens via de URL, POST verstuurt gegevens via de body van het verzoek
C
GET en POST zijn identiek, behalve de snelheid.
D
GET wordt alleen gebruikt voor het uploaden van bestanden, POST alleen voor tekst

Slide 25 - Quizvraag

Deze slide heeft geen instructies


Welke van de volgende stellingen over de POST-methode is correct?
A
GET is veiliger dan POST omdat de gegevens niet in de URL worden weergegeven
B
Gegevens die via POST worden verzonden, zijn zichtbaar in de URL
C
POST is veiliger dan GET omdat de gegevens niet in de URL worden weergegeven
D
POST-verzoeken worden altijd gecached door de browser

Slide 26 - Quizvraag

Deze slide heeft geen instructies


Wanneer is het beter om de GET-methode te gebruiken?
A
Als je gegevens wilt opslaan in de browsergeschiedenis en bookmarks
B
Als je grote hoeveelheden data moet versturen
C
Bij het versturen van gevoelige gegevens zoals wachtwoorden
D
Als je geen URL-parameters wilt gebruiken

Slide 27 - Quizvraag

Deze slide heeft geen instructies


Wat doet de htmlspecialchars() functie in PHP?
A
Het versleutelt de gegevens die van een formulier komen
B
Het voorkomt dat speciale HTML-karakters worden uitgevoerd als HTML-code
C
Het verstuurt automatisch de gegevens via de POST-methode
D
Het converteert alle tekens naar hoofdletters

Slide 28 - Quizvraag

Deze slide heeft geen instructies

superglobal variable
We zagen bij POST en GET dat er opeens een _ in de variabele stond... 
dat betekent dat het een zgn. superglobal variable is

Dat zijn speciale variabelen in PHP die globale scope hebben en specifieke belangrijke informatie hebben... 
voorbeelden zijn $_POST  $_GET en $_SERVER

Slide 29 - Tekstslide

Deze slide heeft geen instructies

Opdracht # variabelen
Let op: geen gebruik van AI, wel w3schools.com
  1. maak een php bestand aan: .\htdocs\02_01.php
  2. vraag de bezoeker om naam en e-mail in te vullen
  3. gebruik hiervoor de POST methode
  4. geef via echo de invoer van de gebruiker weer
  5. test of het werkt (via XAMPP, weet je nog?)
  6. ontsmet de invoer en test het opnieuw
timer
10:00

Slide 30 - Tekstslide

Deze slide heeft geen instructies

Opdracht # ? PHP filter
Idee:
maak in PHP een pagina die van alle niet PHP bestanden in dezelfde folder een downloadlink in een ongeordende lijst maakt, en maak daarboven een edit link die deze lijst kan "filteren", zodat de gebruiker een bepaald bestand kan zoeken
timer
5:00

Slide 31 - Tekstslide

Deze slide heeft geen instructies

Opdracht # ? SSL
Idee:
voeg een SSL certificaat toe
volg deze leidraad (nog testen!): https://gist.github.com/nguyenanhtu/33aa7ffb6c36fdc110ea8624eeb51e69
of
https://robsnotebook.com/xampp-ssl-encrypt-passwords/
timer
5:00

Slide 32 - Tekstslide

Deze slide heeft geen instructies

Leerdoelen
Nu kun je:
  • variabelen declareren
  • 3 don't's benoemen van variabelen benoemen
  • 3 verschillende manieren benoemen om input te krijgen
  • verschil uitleggen tussen die manieren
  • de PHP functie benoemen waarmee je input ontsmet
  • aangeven wat een superglobal variable is

Slide 33 - Tekstslide

Rode achtergrond betekent: klas is stil, dit zijn de leerdoelen en quizzes waarbij niet overlegd mag worden.

Doel van deze les is om het leren zichtbaar te maken voor zowel leerling als docent.

Slide 34 - Tekstslide

Deze slide heeft geen instructies