syntiizz: PHP script sendet obwohl Felder leer!

hallo,

ich möchte ein kontaktformular von meiner internetseite an eine email senden.
das problem ist, dass egal ob textfelder ausgefüllt sind oder nicht, es trotzdem geschickt wird.

hier das php script:

<?php

$error = FALSE;
   $success = FALSE;
   $my_emailaddress = 'die email an der es gehen soll';
   $mailtxt = '';
   $not_displayed = array ('required','recipient','subject','redirect','missing_fields_redirect','submit');

$required = (isset ($_POST["required"])) ? $_POST["required"] : '';
   $subject = (isset ($_POST["subject"])) ? $_POST["subject"] : 'Anfrage vom Kontaktformular';
   $recipient = (isset ($_POST["recipient"]) && !empty ($_POST["recipient"])) ? $_POST["recipient"] : $my_emailaddress;
   $missing_fields_redirect = (isset ($_POST["missing_fields_redirect"]) && !empty ($_POST["missing_fields_redirect"])) ? $_POST["missing_fields_redirect"] : '';
   $redirect = (isset ($_POST["redirect"]) && !empty ($_POST["redirect"])) ? $_POST["redirect"] : '';

$require_array= explode(",", $required);
   $syntax = (ereg('[1]+.'.'[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+$',$recipient));

if ($syntax && !empty ($recipient)) {
      foreach ($_POST as $key=>$val) {
         if ($error = (in_array($key, $require_array) && empty($val))) break;
          if (!empty($val) && (!in_array($key, $not_displayed)) )   {
             $mailtxt .= ("( ".$key." )\t\t".$val."\n\n");
         }
        }

if (!$error) {
          $success = @ mail ($recipient, $subject, $mailtxt ,"From: Kontaktformular www.bwsg.de <robot@".str_replace ("www.bwsg.de/danke.html", "", $_SERVER["HTTP_HOST"]).">");
         if (!empty ($redirect) && $success) {
            # danke-seite
            header ("Location:".$redirect);
              exit;
         }
      }
    }

if (!empty ($missing_fields_redirect) && ($error || !$success)) {
      // header auf fehler seite
      header ("Location:".$missing_fields_redirect);
      exit;
   }

# wenn keine Seiten angegeben wurden
   if ($error || !$success) {
      print ('<html><head><title>Fehler</title></head><body bgcolor="#65944c"><br><br><center>
      <font face="Verdana" size="2" color="#ffffff">Es ist ein Fehler aufgetreten</font></center></body></html>');
   } else {
      print ('<html><head><title>Erfolgreich</title></head><body bgcolor="#65944c"><br><br><center>
      <font face="Verdana" size="2" color="#ffffff">Ihre Daten wurde erfolgreich gespeichert</font></center></body></html>');
   }

?><b></b>


  1. -!#$%&'*+\./0-9=?A-Z^_a-z{|}~]+'.'@'.'[-!#$%&\'\*+\\/0-9=?A-Z^\_a-z{|}~ ↩︎

  1. Hi,
    Weil Du nur abfragst, ob es $error wahr ist.

    if (!$error) {
              $success = @ mail ($recipient, $subject, $mailtxt ,"From: Kontaktformular www.bwsg.de <robot@".str_replace ("www.bwsg.de/danke.html", "", $_SERVER["HTTP_HOST"]).">");

    Danach gehts dann nicht mehr weiter, ausser eben $error ist falsch.

    --
    Wenn Du eine Antwort nicht verstehst, trau dich und frag nochmal nach.
     
    1. danke für deine antwort,

      was muß ich den schreiben wenn name und tel. ausgefüllt sein sollen jedoch nicht unbedingt der rest? aber wenn nichts ausgefüllt ist, soll er natürlich auch nicht senden!

      gruß syntiizz

      1. Hiho!

        danke für deine antwort,

        bitte.

        was muß ich den schreiben wenn name und tel. ausgefüllt sein sollen jedoch nicht unbedingt der rest? aber wenn nichts ausgefüllt ist, soll er natürlich auch nicht senden!

        Ganz ehrlich? Am Besten gar nichts. Loesch den Krempel. Du scheinst es ja auch nicht selbergeschrieben zu haben, also such dir bitte einen Formmailer der keine Hausgrossen Sicherheitsluecken aufweist und sicher nach einer Woche als Spambot dient.

        Haette ich grad einen parat, wuerde ich ihn Dir verlinken. Wenn Du von anderen an dieser Stelle keine Tipps fuer einen guten bekommst, dann such dir welche und frag hier nochmal nach Meinungen.

        --
        Wenn Du eine Antwort nicht verstehst, trau dich und frag nochmal nach.