PHP-1 1 Formulieren GET en POST 🎯 Leerdoelen Je weet wat GET en POST zijn. Je kunt gegevens doorsturen van een formulier naar een PHP-bestand. Je begrijpt het verschil tussen GET en POST qua werking en veiligheid. 💡 Uitleg Bij een formulier kies je of je GET of POST gebruikt om gegevens naar de server te sturen: Methode Kenmerk Voorbeeld GET Gegevens worden zichtbaar in de URL (minder veilig) pagina.php?naam=Ali POST Gegevens worden onzichtbaar verstuurd (veiliger) De gegevens zitten in het HTTP-verzoek, niet in de URL 🛠️ Opdracht 1 – formulier.html (GET) Maak een bestand formulier.html en zet daar deze code in:
Geen naam ingevuld.
"; } ?> Uitleg: We controleren met isset() of de waarde bestaat. htmlspecialchars() voorkomt XSS-aanvallen. Vul het formulier in en kijk wat er gebeurt. Wat zie je op URL als je de begroeting ziet? Pas de tekst na het = teken op de url aan en reload je pagina, wat gebeurt er? 🛠️ Opdracht 3 – POST-versie maken Pas in formulier.html het formulier aan naar: 🛠️ Opdracht 2 – login.php Maak een bestand login.php dat de naam opslaat in een sessie en doorstuurt: 🛠️ Opdracht 3 – welkom.php Maak een bestand welkom.php dat de gebruiker begroet: Welkom, " . $_SESSION["gebruiker"] . "!"; echo ''; } else { echo "Je bent niet ingelogd.
"; } ?> 🛠️ Opdracht 4 – uitloggen.php 🧠 Reflectie Waarom moet je altijd session_start() gebruiken bovenaan? Wat gebeurt er als je probeert welkom.php te openen zonder in te loggen? Wat zou je kunnen uitbreiden, bijvoorbeeld met wachtwoordcontrole? 📤 Inleveren Screenshots van inloggen.html , welkom.php met jouw naam, en uitloggen.php na het uitloggen. Je moet gebruik maken van sessies en de naam van de gebruiker correct kunnen tonen op meerdere pagina’s. 9 Inloggen met wachtwoordcontrole 🎯 Leerdoelen Je maakt een formulier met gebruikersnaam én wachtwoord. Je controleert de invoer in PHP. Je begrijpt waarom $_GET niet veilig is voor wachtwoorden. Je leert werken met een associatieve array. 💡 Uitleg Een loginformulier stuurt gebruikersnaam en wachtwoord naar PHP. In deze les gebruiken we eerst $_GET om te laten zien waarom dat niet veilig is – je ziet het wachtwoord in de URL. 🛠️ Opdracht 1 – login.html Maak een bestand login.html :Foutieve inloggegevens. Probeer opnieuw.
"; } ?> Let op: Als je dit formulier verstuurt, zie je het wachtwoord in de URL. Dat is niet veilig! 🛠️ Opdracht 3 – Verbeter met POST Pas het formulier aan zodat het method="post" gebruikt Pas controle.php aan zodat het $_POST gebruikt Test: zie je het wachtwoord nog in de URL? 💡 Uitleg – Associatieve array Tot nu toe heb je gewerkt met lijsten zoals: $hobby’s = ["voetbal", "gamen", "lezen"]; Dit is een indexed array : de computer onthoudt zelf de volgorde (index 0, 1, 2). Een associatieve array heeft zelfgekozen namen als index (zogenaamde "keys"): $gebruikers = [ "admin" => "geheim123", "student" => "welkom01" ]; Je kunt dan bijvoorbeeld zeggen: echo $gebruikers["admin"]; // toont: geheim123 Heel handig voor wachtwoorden of gebruikerslijsten! 🛠️ Extra opdracht – Meerdere gebruikers Breid controle.php uit met een associatieve array van toegestane gebruikers en wachtwoorden: "geheim123", "student" => "welkom01", "docent" => "phprules" ]; $gebruiker = $_POST["gebruiker"]; $wachtwoord = $_POST["wachtwoord"]; if (isset($gebruikers[$gebruiker]) && $gebruikers[$gebruiker] == $wachtwoord) { echo "Inloggen mislukt.
"; } ?> Voeg zelf nog twee gebruikers toe: één voor jouw zelf (dus je eigen voornaam) en één voor een klasgenoot. 🧠 Reflectie Wat is het verschil tussen een indexed array en een associatieve array? Waarom is het veiliger om $_POST te gebruiken voor wachtwoorden? Wat zou je doen om inloggen met een wachtwoord nog veiliger te maken? 📤 Inleveren controle.php Een .txt. of .pdf bestand met de antwoorden op de drie reflectievragen.