Scripts

Contact script

Gewoon mail form op je site zetten en klaar! Bron: Boek WEBDESIGN MET PHP 5 door Ward van der Put van Easy Computing.

contact-script
[code]
<?php 
// Variabelen:
$naam       = "";    // Naam van de afzender
$emailadres = "";    // E-mailadres van de afzender
$tekst      = "";    // Tekst van het e-mailbericht
$vervuild   = FALSE; // TRUE als het formulier geen fouten bevat
$verzonden  = FALSE; // TRUE als het e-mailbericht is verzonden
$melding    = "";    // String voor (fout)meldingen

// Formulier alleen verwerken als er op een knop met de naam 'submit' is geklikt ...
if (isset($_POST['submit'])) {
    // ... en deze knop de waarde 'Verzenden' heeft:
    if ($_POST['submit'] == "Verzenden") {
        $naam       = $_POST['n'];
        $emailadres = $_POST['e'];
        $tekst      = $_POST['t'];

        // HTML-tags en PHP-code verwijderen:
        $naam       = strip_tags($naam);
        $emailadres = strip_tags($emailadres);
        $tekst      = strip_tags($tekst);

        // Spaties en andere witruimte verwijderen uit de naam en het e-mailadres,
        // maar niet uit de tekst van het bericht:
        $naam       = trim($naam);
        $emailadres = trim($emailadres);

        if (strlen($naam) < 1) {
            $melding  .= "Voer uw <strong>naam</strong> in. ";
            $vervuild  = TRUE;
        }

        if (strlen($emailadres) < 1) {
            $melding  .= "Voer uw <strong>e-mailadres</strong> in. ";
            $vervuild  = TRUE;
        } else {
            function is_email($emailadres)
{
    // Eerst een snelle controle uitvoeren: 
    // een e-mailadres moet uit minimaal 7 tekens bestaan:
    if (strlen($emailadres) < 7) {
        return FALSE;
    }
    // Daarna een controle met een reguliere expressie uitvoeren:
    if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $emailadres)) {
        return TRUE;
    } else {
        return FALSE;
    }
}
            if (!is_email($emailadres)) {
                $melding  .= "<strong>" . htmlentities($emailadres) . "</strong> is geen geldig e-mailadres. ";
                $vervuild  = TRUE;
            }
        }
        
        if (strlen($tekst) < 10) {
            $melding  .= "Voer een <strong>tekst</strong> in. ";
            $vervuild  = TRUE;
        }

        // E-mailbericht verzenden als de gegevens niet vervuild zijn:
        if (!$vervuild) {
            // Constante voor het e-mailadres van de ontvanger:
            define("AAN", "[email protected]");
            // Constante voor het onderwerp:
            define("ONDERWERP", "Contactformulier");
            // Headers met de naam en het e-mailadres van de gebruiker:
            $headers  = "From: \"$naam\" <$emailadres>\r\n";
            $headers .= "Reply-To: \"$naam\" <$emailadres>\r\n";
            // Naam en e-mailadres toevoegen aan de tekst:
            $tekst .= "\r\n\r\n$naam";
            $tekst .= "\r\n<$emailadres>";
            if (mail(AAN, ONDERWERP, $tekst, $headers)) {
                $verzonden  = TRUE;
                $melding    = "Hartelijk dank voor uw reactie. ";
                $melding   .= "U ontvangt binnen twee werkdagen antwoord. ";
            } else {
                $verzonden  = FALSE;
                $melding    = "Uw bericht kon niet worden verzonden. ";
                $melding   .= "Wijzig het e-mailadres of probeer het later nog een keer. ";
            }
        }
    }
}

// Standaardtekst voor instructies instellen als er geen foutmeldingen zijn:
if ($melding == "") {
    $melding  = "Voer eerst uw naam en uw e-mailadres in. ";
    $melding .= "Typ daarna uw e-mailbericht in het grote vak en klik op Verzenden.";
}
?>
<h1>Contact</h1>
<p><?php echo $melding; ?></p>
<?php
// Formulier weergeven als de gegevens vervuild zijn
// of het e-mailbericht niet verzonden is:
if ($vervuild or !$verzonden) {
    $naam       = htmlentities($naam);
    $emailadres = htmlentities($emailadres);
    $tekst      = htmlentities($tekst);
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
  <table border="0" cellpadding="0" cellspacing="2">
    <tr>
      <td width="20%"><label for="n"><span style="text-decoration: underline">N</span>aam:</label></td>
      <td width="80%"><input accesskey="n" id="n" name="n" size="56" type="text" value="<?php echo $naam; ?>"></td>
    </tr>
    <tr>
      <td nowrap><label for="e"><span style="text-decoration: underline">E</span>-mailadres:</label></td>
      <td><input accesskey="e" id="e" name="e" type="text" size="56" value="<?php echo $emailadres; ?>"></td>
    </tr>
    <tr>
      <td colspan="2">
        <label for="t"><span style="text-decoration: underline">T</span>ekst van uw e-mailbericht:</label>
      </td>
    </tr>
    <tr>
      <td colspan="2"><textarea accesskey="t" cols="60" id="t" name="t" rows="12"><?php echo $tekst; ?></textarea></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td align="right">
        <input class="knop" name="submit" type="submit" value="Verzenden"> &nbsp;
        <input class="knop" name="submit" type="submit" value="Wissen">
      </td>
    </tr>
  </table>
</form>
<?php
}
?>
[/code]

Reacties

0
Nog geen reacties.