[code]
<?php
// Variabelen voor een reactie:
$datum   = date("d-m-Y"); // Huidige datum
$tijd    = date("H:i");   // Huidige tijd
$naam    = "";            // Naam van de gebruiker
$reactie = "";            // Tekst van de reactie;

// Constante voor de bestandsnaam:
define("BESTAND", "reacties.htm");

// Formulier verwerken:
if (isset($_POST['submit'])) {
    // Controleren of op de knop 'Reageren' geklikt:
    if ($_POST['submit'] == "Reageren") {
        // Naam van de gebruiker lezen:
        if (isset($_POST['naam'])) {
            $naam = $_POST['naam'];
            $naam = strip_tags($naam);
            $naam = trim($naam);
            $naam = htmlentities($naam);
            if (strlen($naam) == 0) {
                $naam = "Anoniem";
            }
        } else {
            $naam = "Anoniem";
        }
        // Reactie van de gebruiker lezen:
        if (isset($_POST['reactie'])) {
            $reactie = $_POST['reactie'];
            $reactie = strip_tags($reactie);
            $reactie = trim($reactie);
            // Reactie vanaf twee tekens toevoegen:
            if (strlen($reactie) > 1) {
                // Naam, datum en tijd toevoegen aan de reactie
                // en opmaken als een alinea (X)HTML:
                $reactie = stripslashes($reactie);
                $reactie = htmlentities($reactie);
                $reactie = nl2br($reactie); // Regeleinde vervangen door <br />
                $reactie = "<p><strong>" . $naam . " [post van " . $datum . " om " . $tijd . " uur]:</strong><br />" . $reactie . "</p>\r\n";

                // Bestaande inhoud lezen als het bestand al bestaat:
                if (file_exists(BESTAND)) {
                    // Bestand openen voor lezen:
                    $handle = fopen(BESTAND, "r");
                    // Alle bestaande inhoud van het bestand lezen:
                    $bestandsinhoud = fread($handle, filesize(BESTAND));
                    // Bestand sluiten:
                    fclose($handle);
                } else {
                    $bestandsinhoud = "";
                }

                // Nieuwe reactie toevoegen
                // aan het BEGIN van de bestaande inhoud:
                $bestandsinhoud = $reactie . $bestandsinhoud;
                // Bestand openen voor schrijven:
                $handle = fopen(BESTAND, "w");
                // Bestand vergrendelen voor exclusieve toegang:
                flock($handle, LOCK_EX);
                // Nieuwe bestandsinhoud opslaan:
                fwrite($handle, $bestandsinhoud);
                // Bestandsvergrendeling opheffen:
                flock($handle, LOCK_UN);
                // Bestand sluiten:
                fclose($handle);
                // Variabelen opruimen:
                unset($reactie, $handle, $bestandsinhoud);
            }
        }
    }
}
?>
<h1>Reacties</h1>
<form action="reacties.php" method="post">
  <p>
    <label for="naam"><span style="text-decoration: underline">N</span>aam (niet vereist): </label>
    <input accesskey="n" id="naam" name="naam" type="text" value="<?php echo $naam; ?>"><br />
    <label for="reactie"><span style="text-decoration: underline">T</span>ekst van uw reactie, vraag of opmerking:</label><br />
    <textarea accesskey="t" cols="50" id="reactie" name="reactie" rows="5"></textarea><br />
    <input class="knop" id="submit" name="submit" type="submit" value="Reageren">
  </p>
</form>
<?php
// Bestaande inhoud weergeven als die bestaat:
if (file_exists(BESTAND)) {
    include_once(BESTAND);
} else {
    echo "<p>";
    echo "<strong>Er zijn nog geen reacties.</strong>";
    echo "<br />";
    echo "Met het bovenstaande formulier kunt u als eerste reageren.";
    echo "</p>";
}
?>
[/code]