educom PHP-basis E-learning

Les 10 — PDO, try/catch & SQL-injection

Veilig praten met MySQL via PDO; begrijpen waarom string-concat in SQL gevaarlijk is.

Demo

Het SQL-injection-voorbeeld (sql_injection_example.php) is bewust kwetsbaar: alleen lokaal op je eigen testdb, niet op deze site.
PDO-voorbeelden staan in demo/11/.

Open demo-bron

SQL-injection-voorbeeld staat niet online. PDO-bron hieronder (map 11): klik een bestand om te bekijken. PHP zelf draait bij jou lokaal in XAMPP.

Gewone opdracht

Opdracht 24 (kern)

  1. Maak in MySQL (XAMPP/phpMyAdmin) een kleine tabel (bijv. personen).
  2. Maak 10/show.php dat data toont met PDO + try/catch (geen root-password hardcoden in commits — gebruik een config buiten git of duidelijke placeholders).
  3. UI waarmee je een UPDATE op één/enkele rijen kunt doen en daarna het nieuwe resultaat ziet.

(Oorspronkelijk “op VPS”; hier: lokaal XAMPP + GitHub volstaat.)

Extra / variant

Extra A Injection-lab

Reproduceer lokaal het idee van sql_injection_example.php op een testdb. Schrijf in 10/injectie-notitie.md: wat ging mis, en hoe prepared statements dat voorkomen.

Extra B Prepared statements

Zet je SELECT/UPDATE om naar prepared statements (named of positional placeholders).

Extra C — Opdrachten 6–8 CRUD-basis

Als je die eerder oversloeg: tabel + SELECT in tabelweergave (opdracht 6), INSERT via formulier (7), UPDATE via selectie + formulier (8) — nu met PDO.

Opleveren

  1. git add 10 → commit → push (geen echte wachtwoorden in de repo)
  2. Mail: les 10 klaar of hulp + repo-link

Door naar les 11 →