PHP Formulieren

Home / Programmeren / Php / Formulieren

Formulieren

Let op: We gaan er in deze tutorial van uit dat u formulieren onder de knie heeft! Kijk anders bij de HTML tutorial formulieren!

Als u formulieren maakt met behulp van HTML, kunt u er eigenlijk helemaal niets mee. U kunt ze niet op de email zetten, niet evalueren, etcetera. Met Javascript kunt u al meer, u kunt de uitslag op de mail zetten (de gebruiker heeft dan wel een emailadres nodig, en de browser moet dit ondersteunen) en u kunt de uitslag live evalueren. Met PHP kunt u ook formulieren evalueren (niet live, maar na vezending van de uitslag), u kunt deze op de mail zetten (zonder de voorgaande beperkingen) en u kunt bijvoorbeed met behulp van PHP een inlogsysteem opzetten (zoals op het forum). Wij gaan in deze tutorial een soort contact formulier maken waardoor iemanand contact met u op kan nemen.

De eerste stap is het maken van een formulier. Hiervoor hebt u enige kennis omtrent formulieren nodig. Wij maken ons formulier op de volgende manier:

<form>
<table>
<tr><td>Uw naam:</td><td><input type="text"></td></tr>
<tr><td>Uw emailadres:</td><td><input type="text"></td></tr>
<tr><td>Uw boodschap:</td><td><textarea></textarea></td></tr>
<tr><td colspan="2"><input type="submit"><br>
</table>
</form>

Dit geeft de volgende uitwerking. Dit zou voor zich moeten spreken. Dit is echter niet echt interactief. Er gebeurt namelijk niets. Hiervoor moeten we enkele aanpassingen verrichten in het script. Het is namelijk zo dat we het script in tweeën gaan delen. Een deel voor het formulier en een deel voor de verwerking ervan. Vervolgens kunnen we met een if voorwaarde de delen in werking laten gaan. We moeten ook zorgen dat bij het drukken op de knop Verzenden, het formulier ook daadwerkelijk wordt verwerkt. Zo krijgen we het volgende script.

<?php
if(isset($_POST['verzenden'])){
?>
code voor de verwerking
<?php
}else{
?>
<form action="dezepagina.php" method="post">
<table>
<tr><td>Uw naam:</td><td><input type="text" name="naam"></td></tr>
<tr><td>Uw emailadres:</td><td><input type="text" name="email"></td></tr>
<tr><td>Uw boodschap:</td><td><textarea name="boodschap"></textarea></td></tr>
<tr><td colspan="2"><input type="submit" name="verzenden"><br>
</table>
<form>
<?php
}
?>

Dit geeft de volgende uitwerking. Zoals u kunt zien krijgt u na het klikken op verzenden de tekst code voor verwerking te zien. U ziet in het bovenstaan de script een if constructie met $_POST. $_POST wordt uitgebreid besproken in de GET en POST tutorial. if(isset($_POST['verzenden'])) controleert of er op de knop verzenden is gedrukt. Zo ja, dan gaat de code helemaal bovenin in werking. Zo niet, dan wordt het formulier weergegeven.

Nu we klaar zijn met het formulier, kunnen we verder gaan met de verwerking ervan. We gaan in dit voorbeeld de ingevoerde gegevens simpelweg via een email verzenden. Hiervoor hebben we een niet al te lang script nodig. Eerst beginnen we met het invoeren van de ontvanger, de verzender, het onderwerp en de boodschap. De ontvanger en het onderwerp zijn altijd hetzelfde. Daarom beginnen we daarmee:

$ontvanger="info@icer.nl";
$onderwerp="Contact-formulier";

Nu gaan we de verzender en het bericht aangeven.

$verzender="From: " . $_POST['email'];
$bericht="Dit is een email van de website.\n";
$bericht.="Het bericht is gestuurd door:" . $_POST['naam'] . "\n";
$bericht.="Het bericht:\n";
$bericht.=$_POST['boodschap'] . "\n\n";
$bericht.="Einde van dit automatisch gegenereerde bericht.";

Ik heb eerst de verzender gedefinieerd. Dit doet u simpelweg met From: info@pc-tutorials.nl of iets dergelijks. Vervolgens gaan we het bericht maken. Dit doet u door de variabele $bericht te maken en hier de eerste regel in te tikken. Vervolgens breekt u de regel af (u gaat dan naar de volgende regel) met \n. Vervolgens voegt u een extra regel toe met $bericht.="tekst". Let goed op de punt. Deze is niet zo goed te zien. Vervolgens verstuurd u het bericht met de functie mail(). U krijgt:

mail($ontvanger,$onderwerp,$bericht,$verzender);

U krijgt vervolgens de volgende code:

<?php
if(isset($_POST['verzenden'])){
$ontvanger=info@pc-tutorials.nl;
$onderwerp="Contact-formulier";
$verzender="From: " . $_POST['email'];
$bericht="Dit is een email van de website.\n";
$bericht.="Het bericht is gestuurd door:" . $_POST['naam'] . "\n";
$bericht.="Het bericht:\n";
$bericht.=$_POST['boodschap'] . "\n\n";
$bericht.="Einde van dit automatisch gegenereerde bericht.";
mail($ontvanger,$onderwerp,$bericht,$verzender);
}else{
?>
<form action="dezepagina.php" method="post">
<table>
<tr><td>Uw naam:</td><td><input type="text" name="naam"></td></tr>
<tr><td>Uw emailadres:</td><td><input type="text" name="email"></td></tr>
<tr><td>Uw boodschap:</td><td><textarea name="boodschap"></textarea></td></tr>
<tr><td colspan="2"><input type="submit" name="verzenden"><br>
</table>
<form>
<?php
}
?>

Dit is het einde van deze tutorial