Ik heb met HTML5 (Bootstrap3) een contactformulier gemaakt.
Omdat ik de server taal PHP niet beheers ben ik opzoek gegaan naar een veilige code. Via w3schools.com kwam ik
een uitgebreid PHP script tegen voor formulieren.
https://www.w3schools.com/php/showphp.asp?filename=demo_form_validation_complete
Omdat ik het ingevulde formulier graag naar een e-mail adres wil laten sturen ben ik weer opzoek gegaan. Via phphulp.nl en PHPwiki heb ik stukjes code gevonden en vervolgens geprobeerd die stukjes script aan de code van w3schools.com toe te voegen. Klopt de code nu nog wel? Wellicht de volgorde?
Ik zie door de bomen het bos niet meer. Kan iemand mij alstublieft helpen?
<?php
if(isset($_POST['emailadres']))
{
$email_from = "[email protected]";
$email_to = "[email protected]";
$email_subject = "Contactform";
$emailadres = filter_input(INPUT_POST,'emailadres', FILTER_VALIDATE_EMAIL);
$naam = $_POST['naam'];
$plaats = $_POST['plaats'];
$email = $_POST['email'];
$geslacht = $_POST['geslacht'];
$comment = $_POST['comment'];
$html = true;
$email_message = nl2br;
$headers .= "From:". $email_from . "\r\n";
$headers .= "To:". $email_to . "\r\n";
$headers .= "X-Mailer: PHP/".phpversion(). "\r\n";
$headers .= ($html) ? "MIME-Version: 1.0" . "\r\n";
$headers .= ($html) ? "Content-type:text/html;charset=UTF-8" . "\r\n";
@mail($email_to,$email_subject,$email_message,$headers);
}
// define variables and set to empty values
$naamErr = $plaatsErr = $emailErr = $geslachtErr = $commentErr "";
$naam = $plaats = $email = $geslacht = $comment "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["naam"])) {
$naamErr = "Typ uw naam in";
} else {
$naam = test_input($_POST["naam"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$naam)) {
$naamErr = "Alleen letters en spaties";
}
}
if (empty($_POST["plaats"])) {
$plaatsErr = "Typ uw woonplaats in";
} else {
$plaats = test_input($_POST["plaats"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$plaats)) {
$plaatsErr = "Alleen letters en spaties";
}
}
if (empty($_POST["email"])) {
$emailErr = "Typ geldig email adres";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Ongeldige email";
}
}
if (empty($_POST["geslacht"])) {
$geslachtErr = "Maak geslachts keuze";
} else {
$geslacht = test_input($_POST["geslacht"]);
}
}
if (empty($_POST["comment"])) {
$comment = "Typ uw opmerking of vraag";
} else {
$comment = test_input($_POST["comment"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$plaats)) {
$plaatsErr = "Alleen letters en spaties";
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<form class="form-horizontal" method="post" name="contactform" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<h6>* Verplichte velden</h6><br />
<div class="form-group row">
<label for="naam" class="col-sm-2 col-form-label">naam*</label>
<div class="col-sm-2">
<input class="form-control" type="text" name="naam" id="naam" placeholder="voor en achternaam" required>
<span class="error"><?php echo $naamErr;?></span>
</div>
</div>
<div class="form-group row">
<label for="plaats" class="col-sm-2 col-form-label">Woonplaats*</label>
<div class="col-sm-2">
<input class="form-control" type="text" name="plaats" id="plaats" required>
<span class="error"><?php echo $plaatsErr;?></span>
</div>
</div>
<div class="form-group row">
<label for="email" class="col-sm-2 col-form-label">E-mail*</label>
<div class="col-sm-3">
<input class="form-control" type="email" name="email" placeholder="[email protected]" id="email" required>
<span class="error"><?php echo $emailErr;?></span>
</div>
</div>
<div class="form-group row">
<label for="geslacht" class="col-sm-2">Geslacht*</label>
<div class="col-sm-2">
<select class="form-control" name="geslacht" id="geslacht">
<option>Man</option>
<option>Vrouw</option>
</select>
<span class="error"><?php echo $geslachtErr;?></span>
</div>
</div>
<div class="form-group row">
<label for="comment" class="col-sm-2">Opmerking*</label>
<div class="col-sm-5">
<textarea class="form-control" rows="3" name="comment" id="comment"></textarea>
<span class="error"><?php echo $commentErr;?></span>
</div>
</div>
<div class="form-group row">
<div class="col-sm-2"></div>
<div class="col-sm-2">
<button type="submit" class="btn btn-primary" value="sent">Verzend</button>
</div>
</div>
</form>
<?php
echo "<h2>Your Input:</h2>";
echo $naam;
echo "<br />";
echo $plaats;
echo "br />"
echo $email;
echo "<br />";
echo $geslacht;
echo "<br />";
echo $comment;
echo "<br />";
?>