Nou slaap lekker dan nog. Ik heb ff wat in elkaar gedraaid.
Het is niet de beste en netste manier.
Maar het houd wel een groot deel van de bots buiten je gastenboek.
Er kunnen nu geen <> en http: gebruikt worden in het bericht.
PHP:
<?php
// Remove whitespaces from strings
$Vname = trim(strip_tags($_POST['voornaam']));
$Aname = trim(strip_tags($_POST['achternaam']));
$name = $Vname.$Aname;// create string to use in if statement
$bericht = trim($_POST['bericht']);
// Check if strings are empty
// or tags are used
// or a url has been added to the message
if((strlen($bericht) != strlen(strip_tags($bericht)) || preg_match('/http:/', $bericht) || empty($bericht) || empty($name) ){
// refresh header in 3 seconds
header('Refresh: 1; url=Gastenboek.php');
// output to screen untill header refresh
// Hier zou je een pagina kunnen includen om een error te melden.
echo "<center><h1>Je hebt niet alle ingevuld</h1><hr /></center>";
echo '<script>alert("Je hebt niet alles ingevuld");</script>';
exit();
} else {
// Create and clean up strings to use
$name = trim(htmlentities($Vname.' '.$Aname));
$bericht = htmlentities($bericht);
$data = 'reacties.txt';
$file = fopen($data, "a");
// Set message date
$datum = strftime("%d-%m-%y %H:%M", time());
// Prepare data to wrote to file
$input = "<h4>Geschreven door:</h4>$name<br><br><h4>Tijd:</h4>$datum<br><br>
<h4>Bericht:</h4>$bericht<br><br><hr>\n\l";
// Write input to file
fputs($file, $input);
// Close file
fclose($file);
// redirect header
header('Location: Gastenboek.php');
exit();
}
?>