robertternes: Kontakt-Formular mit Spam-und Kontrollschutz

Beitrag lesen

Hallo!

Ersteinmal vielen Dank für eure damalige Hifle beim Script. Hier nochmal die Erklärung für alle:
Ich habe ein Formular in HTML, dass die eingegebenen Daten beim Absenden an die mailer.php schickt, um diese dort auswerten zu lassen. Unten habe ich nochmal den kompletten Code.
Mein Problem ist, dass ich durch dieses Formular "vollgespammt" werden kann. Das kann darin liegen, dass wen jemand so fies ist und eine Minute lang die Enter Taste drückt, dass die Nachricht dann hunderte Mal abgeschickt wird.
Ich möchte euch nun fragen bzw. bitten mein Script soweit zu verbessern, dass es

  • EMail Adresse kontrolliert (ein @ Zeichen und mind. ein Punkt)
  • Kontrollieren des Textinhaltest auf (B)CC-Header (ausschließen)
  • IP Sperre, damit jemand nur jede halbe Stunde eine Mail schicken kann
  • Sperre, dass das Formular nur einmal abgesandt werden kann (und nicht ständig auf Enter klicken oder die Dankseite aktualisieren)

Ich hoffe, dass das mir jemand ins Script einbauen kann, da ich PHP noch nicht so gut kann.

SCRIPT der mailer.php:
---------------------------------------------------------------------
<html>
<head>
<title>Kontakt-Formular</title>
</head>
<body>

<?php
echo $abschicken;
if($abschicken == "Absenden")
{
   if(empty($name) || empty($email) || empty($nachricht) || empty($adresse))
   {
      echo "Es wurden nicht alle Felder ordnungsgemäß ausgefüllt. Bitte kehren Sie zurück und vervollständigen Sie Ihre Angaben!";
   }
   else
   {
      while(list($feld,$wert)=each($HTTP_POST_VARS))
      {
         if($feld!="abschicken")
         {
            $mailnachricht.=ucfirst($feld).": $wert\n";
         }
      }
      $mailnachricht.="\nDatum/Zeit: ";
      $mailnachricht.=date("d.m.Y H:i:s");
      $mailbetreff="Kontakt: ";
      $mailbetreff.=$HTTP_POST_VARS[betreff];
      mail("webdesign@pharao-software.de", $mailbetreff, $mailnachricht, "From: $email");
      echo "Vielen Dank für Ihre Anfrage!";
   }
}
else
{
   echo "Ein Fehler ist aufgetreten.";
}

?>

</body>
</html>
---------------------------------------------------------------------

Ich hoffe Ihr könnt mir helfen! Schonmal vielen vielen Dank!
MfG
Robert Ternes