Forms verwerken met PHP

Hallo en in deze tutorial laat ik je zien hoe je formulieren die je gemaakt hebt in HTML kunt verwerken met PHP. In deze tutorial gaan we het echter niet hebben over de veiligheid. Hier komt later nog een tutorial en een geheugensteuntje-blad voor.

In dit voorbeeld gaan we ook kijken hoe je nakijkt of een formulier is verzonden. En dat doen we toevallig als eerstes.

Je zult merken dat zo goed als elke mogelijkheid in een formulier meestal op dezelfde manier wordt opgevraagd. Enkel checkboxen doen anders.

/

Nakijken of een formulier is verzonden

Voordat je kan nakijken wat de verzonden waardes zijn moet je eerst nakijken of het verzonden is. I n theorie heb je iets soortgelijks als dit binnen de FORM-tags in je HTML staan:

<input type="submit" name="submit" value="Klik hier voor te verzenden" />
 
(let eventjes op het name-attribuut) In PHP kunnen we dit als volgt nakijken:

if isset($_POST["submit"]))
{
//actie's indien verzonden
}
 
Als je eenmaal dit weet kan je nakijken of het formulier verzonden is. Eventjes een klein voorbeeldje:

<?php
if isset($_POST["submit"]))
{
echo("Het formulier is verzonden");
}
?>
<input type="submit" name="submit" value="Klik hier voor te verzenden" />
 

Tekstvelden, Wachtwoordvelden, Textarea's, Radiobuttons en SELECT

Je kan tekstvelden, wachtwoordvelden,textarea's,... allemaal op dezelfde manier opvragen. In dit voorbeeld is dit een tekstveld. Let in onderstaande HTML-code ook eventjes naar het name-atribuut:

<input type="text" name="gebruikersnaam" />
 
We kunnen de waarde dat na het verzenden is opgegeven op deze manier verwerken:

$username = $_POST["gebruikersnaam"]
 
Informatie:

Alle verzonden items via POST worden opgeslagen in de array $_POST. Deze bestaat natuurlijk enkel als er in de HTML-code vermeld is dat er met POST de data verzonden moet worden en niet met GET.
Informatie:

Bij de radiobuttons is er niet altijd eentje aangeduid. Om dit op te lossen moet elke optie een waarde (value) hebben! en dan moet je tijdens het nakijken van het verzonden formulier kijken of de variabele leeg is "". Zoja... is er geen radiobutton aangeduid!


Checkboxen verwerken

Om na te kijken of een checkbox aangeduid is moet je nakijken of hij meeverzonden is, oftewel dat hij (volgens php) bestaat. Hiervoor gebruik je de volgende code als in de HTML er een checkbox is met als name-attribuut pizza

<?php
if ($_POST["pizza"] == "on")
{$pizza = true; }
else
{$pizza = false; }
?>
 
Om dit alle eens goed te zien of dit werkt kun je deze code gebruiken:

<?php
if ($_POST["pizza"] == "on")
{$pizza = ":D"; }
else
{$pizza = ":("; }

echo($pizza);
?>

<form method="post">
<input type="checkbox" name="pizza">Pizza<input type="submit" />
</form>
 


Je kan ook gebruik maken van een function die dit doet...

function checboxchecked($arg1) {
if ($_POST[$arg1] == "on")
{$ret = true; }
else
{$ret = false; }
return $ret;
}
 

Vervolgens gebruik je deze code om na te kijken of hij aangekruisd is...

<?php
if (checkboxchecked("pizza") == true)
{$pizza = ":D"; }
else
{$pizza = ":("; }

echo($pizza);
?>

<form method="post">
<input type="checkbox" name="pizza">Pizza<input type="submit" />
</form>
 


Hoe alles goed verwerken

In deze (eerder genoemde) tutorial liet ik onderaan een voorbeeldcode zien. In het laatste gedeelte van deze tutorial laat ik je zien hoe je dit formulier kunt verwerken. Er is een lichte fout-controle ingevoerd maar deze is niet effectief voor hackersaanvallen indien je met een MySQL-database werkt!


<?php

function checboxchecked($arg1) {
if ($_POST[$arg1] == "on")
{$ret = true; }
else
{$ret = false; }
return $ret;
}

if (isset($_POST["verzend"]))
{
$gebruikersnaam = $_POST["gebruikersnaam"];
$wachtwoord1 = $_POST["password1"];
$wachtwoord2 = $_POST["password2"];
$email = $_POST["email"];
$regreason = $_POST["reason"];
$geslacht = $_POST["geslacht"];
$intresse = $_POST["intresse"];
$newsletter = checkboxchecked("newsletter");
}
?>

<form method="get" action="#">
<table><tbody>
<tr><td>Gebruikersnaam:</td><td><input type="text" name="username" /></td></tr>
<tr><td>Wachtwoord:</td><td><input type="password" name="password1" /></td></tr>
<tr><td>Wachtwoord (herhalen):</td><td><input type="password" name="password2" /></td></tr>
<tr><td>E-mailadres:</td><td><input type="text" name="email" /></td></tr>
<tr><td>Reden van registratie:</td><td><textarea name="reason" cols="25" rows="3"></textarea></td></tr>
<tr><td>Geslacht:</td><td><input type="radio" name="geslacht" value="m" />Man<br />
<input type="radio" name="geslacht" value="f" />Vrouw
</td></tr>
<tr><td>Ik ben geïntereseerd in...</td><td>
<select name="intresse">
<option value="bouwdozen">Bouwdozen</option>
<option value="computergames">Computerspellen</option>
<option value="poppen">De poppenspeelset</option>
<option value="kleurplaten">Kleurplaten voor kinderen</option>
</select>
</td></tr>
<tr><td>Nieuwsbrief:</td><td><input type="checkbox" name="newsletter" />Stuur mij mails van de nieuwsbrief</td></tr>
<tr><td>Verstuur het formulier:</td><td><input type="submit" name="verzend" value="Verzend" />
</td></tr>
</tbody></table>
</form>
 


Reactie's op Forms verwerken met PHP

Nog geen reactie's op Forms verwerken met PHP.

Geef een reactie op Forms verwerken met PHP


Naam*
E-mail
Website:
Reactie*
Maximum 4000 tekens
Captcha*


* = verplicht