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

1 / 34
suivant
Slide 1: Diapositive
InformaticaWOStudiejaar 4,5

Cette leçon contient 34 diapositives, avec quiz interactifs et diapositives de texte.

time-iconLa durée de la leçon est: 45 min

Éléments de cette leçon

Slide 1 - Diapositive

Cet élément n'a pas d'instructions

Fundament

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

Slide 2 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

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 - Diapositive

Cet élément n'a pas d'instructions



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


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

Slide 5 - Diapositive

Cet élément n'a pas d'instructions

Variabelen 3/3
Declareren gaat zo in PHP:

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

Slide 6 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions


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

Slide 8 - Quiz

Cet élément n'a pas d'instructions


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

Slide 9 - Quiz

Cet élément n'a pas d'instructions


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

Slide 10 - Quiz

Cet élément n'a pas d'instructions


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

Slide 11 - Quiz

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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


Slide 16 - Diapositive

Cet élément n'a pas d'instructions

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

Slide 17 - Question ouverte

Cet élément n'a pas d'instructions

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

hier 
alvast een 
voorbeeld:

Slide 18 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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

Slide 20 - Question ouverte

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

GET           <---->       POST

Slide 22 - Diapositive

Cet élément n'a pas d'instructions

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

Slide 23 - Diapositive

Cet élément n'a pas d'instructions


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 - Quiz

Cet élément n'a pas d'instructions


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 - Quiz

Cet élément n'a pas d'instructions


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 - Quiz

Cet élément n'a pas d'instructions


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 - Quiz

Cet élément n'a pas d'instructions


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 - Quiz

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

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 - Diapositive

Cet élément n'a pas d'instructions