In dit artikel wil ik een simpel PHP-script behandelen dat we de naam 'begroet.php' geven. Het script zorgt ervoor dat een bezoeker begroet wordt, nadat deze zijn of haar naam heeft ingevuld op het HTML-formulier.
<html>
<head>
<title>PHP Les 3</title>
</head>
<body>
<?php
if (empty($_POST["naam"]))
{
?>
<form method="post" action="begroet.php">
Typ je naam en klik op "Verder"<br>
<input type="text" name="naam"><br>
<input type="submit" value="Verder"><br>
</form>
<?php
}
else
{
echo "Hallo ".$_POST["naam"]."<br>";
echo "<br>";
echo "<A href=?>opnieuw</A><br>";
};
?>
</body>
</html>
Laten we eerst eens gaan kijken naar het formulier:
<form method="post" action="begroet.php">
Typ je naam en klik op "Verder"<BR>
<input type="text" name="naam"><BR>
<input type="submit" value="Verder"><BR>
</form>
Het formulier bestaat uit een tekstveld voor het invullen van de naam en een knop met daarop de tekst 'Verder'. Zodra er op deze knop wordt geklikt, wordt de 'action' uitgevoerd. Wat er nu gebeurt, is dat er een script met de naam 'begroet.php' wordt aangeroepen. Hé, dat is raar. We hebben een script 'begroet.php' met daarin een HTML-formulier dat een script met de naam 'begroet.php' aanroept, zodra er op 'Verder' wordt geklikt. Het script roept in principe steeds zichzelf aan, als er geen naam is ingevuld. Waarom dat zo is, leg ik je verderop uit. Het tekstveld heeft een attribuut 'name' met als waarde 'naam'. Deze waarde wordt als variabele doorgestuurd naar het script zodra er op 'Verder' geklikt wordt. Een variabele kan een waarde bevatten. In dit geval is dus de variabele 'naam' gevuld met als waarde de ingevulde naam.
De PHP-code is opgebouwd uit een if-else constructie. Dit zorgt ervoor dat als aan een bepaalde voorwaarde is voldaan, er iets wordt uitgevoerd, anders wordt er iets anders uitgevoerd. Wat gebeurt er nu precies als het script wordt aangeroepen? Als we het script voor de eerste keer aanroepen, dan wordt er naar de voorwaarde gekeken die tussen haakjes vermeld staat bij de if. Deze code wordt hieronder apart vermeld:
empty($_POST["naam"])
Dit stukje code wil zeggen dat als het tekstveld leeg was (de variabele 'naam' heeft geen waarde), toen er op de knop 'Verder' geklikt werd, het stuk code uitgevoerd moet worden dat onder de if staat. In dit geval wordt het HTML-formulier weer getoond en kun je je naam alsnog invoeren. Zoals je ziet staat het gedeelte van de if, de PHP-code, tussen . Na de ?> komt dan weer een normaal stukje HTML-code voor het formulier. De else staat weer tussen omdat dit weer PHP-code is. Dit gedeelte wordt uitgevoerd als er wel een naam was ingevuld (de variabele 'naam' heeft wel een waarde), toen er op 'Verder' werd geklikt. In de else wordt de uitvoer op het scherm getoond, bijvoorbeeld Hallo Jan, als Jan de ingevulde naam was. In
$_POST["naam"]
is de waarde van de variabele 'naam' opgeslagen, die door de echo-functie op het scherm wordt getoond. De code
echo "<A href=?>opnieuw</A><br>";
zorgt er vervolgens voor dat er een hyperlink met de tekst 'opnieuw' op het scherm wordt getoond. Normaal gezien hoort er achter de HREF een URL te staan waar naar toe wordt gegaan als er op de link geklikt werd. Nu staat er een ?. Dit zorgt ervoor dat het script 'begroet.php' opnieuw wordt opgestart, zonder parameters, na het klikken op de link. Alle doorgestuurde variabelen zijn weer leeg en je begint als het ware weer met een schone lei.
Om het script zelf uit te voeren, kopieer je de code en sla het op onder de naam begroet.php. Upload het bestandje vervolgens naar jouw webruimte en open hem in een browser. Je krijgt dan eerst het formulier te zien. Vul je naam in en klik op 'Verder'. Je krijgt als resultaat de begroeting te zien.
Succes!