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 (
PDO-voorbeelden staan in demo/11/.
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)
- Maak in MySQL (XAMPP/phpMyAdmin) een kleine tabel (bijv. personen).
- Maak
10/show.phpdat data toont met PDO + try/catch (geen root-password hardcoden in commits — gebruik een config buiten git of duidelijke placeholders). - 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
git add 10→ commit → push (geen echte wachtwoorden in de repo)- Mail: les 10 klaar of hulp + repo-link