Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Pflichtfelder angegeben aber wird nicht überprüft?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Pflichtfelder angegeben aber wird nicht überprüft?

    Hallo!
    Bei einem Formular auf einer Seite sind die Pflichtfelder angegeben, die E-Mail wird aber trotzdem verschickt, auch wenn man die nicht angegeben hat.. ich poste mal die versend-Datei...

    PHP-Code:
    <?

    include('config.php');

    global $emailfield;    
    global $required;
    global $sentmessage;
    global $toemail;
    global $fields;
    global $subject;

    function checkEmail()
    {
        global $emailfield;    
        if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $_POST[$emailfield])) 
        {
            return "Invalid email address entered.";
        }
        else
        {
            return "";
        }
    }

    function checkRequired()
    {
        global $required;
        foreach ($required as $value) 
        {
            if($_POST[$value]=="")
            {
                if(!$rtn)
                {
                    $rtn=$value;
                }
                else
                {
                    $rtn="$rtn, $value";
                    $s="s";
                }
            }
        }
        if($rtn) $rtn = "You must enter values for the following field$s: $rtn";
        return $rtn;
    }

    if($emailfield)
    {
        $emailError = checkEmail();
    }
    if($required)
    {
        $requiredError = checkRequired();
    }

    if($emailError)
    {
        $sentmessage = $emailError;
    }
    if($requiredError)
    {
        $error = $requiredError;
        if($error!="")
        {
            $sentmessage = $error;
        }
    }
    if($emailError || $requiredError)
    {
        $sentmessage = $sentmessage."<br>Go <a href='javascript:history.back(1)'>back</a> to form.";
    }

    $msg = array($name, $email, $message);
        $name = 'name';
        $email = 'email';
        $message = 'message';
             
    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

    $filename = "email.htm";
    $handle = fopen ($filename, "r");
        $contents = fread ($handle, filesize ($filename));
    fclose ($handle);

    foreach ($fields as $field)
    {
        $entry = $_POST[$field];
        if (!$entry) $entry = "No data submitted";
        $contents = str_replace ("::$field::",$entry,$contents);
    }

    mail($toemail, $subject, $contents, $headers);

    $filename = "danke.php";
    $handle = fopen ($filename, "r");
        $contents = fread ($handle, filesize ($filename));
    fclose ($handle);

    $contents = str_replace ("::SentMessage::",$sentmessage,$contents);

    echo $contents;
    ?>
    und hier die include config:
    PHP-Code:
    <?

    ## fields contains all the variables from the form to be sent in the email - CaSe SeNsItIvE
    $fields = array('message', 'firma', 'ansprechpartner', 'strasse', 'plzort', 'telefon', 'fax', 'email', 'broschure', 'rueckruf' );

    ## required contains all the variables that MUST be filled in - CaSe SeNsItIvE
    $required = array('ansprechpartner','strasse','plzort','email', 'message');

    ## emailfield contains the name of the variable to be validated as an email address
    $emailfield = "email";

    ## subject of the email to be sent
    $subject = 'Formular';

    ## email address to send responses to
    $toemail = '...';

    ## message displayed when email has been sucessfully sent
    $sentmessage = "Danke f&uuml;r das Ihre Bestellung, wir werden uns umgehend bei Ihnen melden."
    ?>
    also ich hab ehrlich gesagt kein Plan warum die Pflichtfelder nicht überprüft werden.... angegeben ist ja immerhin alles...

    lg denise

  • #2
    vielleicht bin ich ja blind aber Du sendest ja auch immer eine mail undabhängig von irgendeiner bedingung...

    Kommentar


    • #3
      Aaah denise mal wieder hi!

      ich würde mal sagen hinter deinem

      PHP-Code:
      if($emailError || $requiredError)
      {
          
      $sentmessage $sentmessage."<br>Go <a href='javascript:history.back(1)'>back</a> to form.";

      fehlt ein else wo alles andere reinkommt

      Kommentar


      • #4
        habs jetzt so:
        PHP-Code:
        <?

        include('config.php');

        global $emailfield;    
        global $required;
        global $sentmessage;
        global $toemail;
        global $fields;
        global $subject;
        if($_REQUEST['senden'])
        {    
        function checkEmail()
        {
            global $emailfield;    
            if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $_POST[$emailfield])) 
            {
                return "Invalid email address entered.";
            }
            else
            {
                return "";
            }
        }

        function checkRequired()
        {
            global $required;
            foreach ($required as $value) 
            {
                if($_POST[$value]=="")
                {
                    if(!$rtn)
                    {
                        $rtn=$value;
                    }
                    else
                    {
                        $rtn="$rtn, $value";
                        $s="s";
                    }
                }
            }
            if($rtn) $rtn = "You must enter values for the following field$s: $rtn";
            return $rtn;
        }

        if($emailfield)
        {
            $emailError = checkEmail();
        }
        if($required)
        {
            $requiredError = checkRequired();
        }

        if($emailError)
        {
            $sentmessage = $emailError;
        }
        if($requiredError)
        {
            $error = $requiredError;
            if($error!="")
            {
                $sentmessage = $error;
            }
        }
        if($emailError || $requiredError)
        {
            $sentmessage = $sentmessage."<br>Go <a href='javascript:history.back(1)'>back</a> to form.";
        }

        $msg = array($name, $email, $message);
            $name = 'name';
            $email = 'email';
            $message = 'message';
                 
        $headers  = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

        $filename = "email.htm";
        $handle = fopen ($filename, "r");
            $contents = fread ($handle, filesize ($filename));
        fclose ($handle);

        foreach ($fields as $field)
        {
            $entry = $_POST[$field];
            if (!$entry) $entry = "No data submitted";
            $contents = str_replace ("::$field::",$entry,$contents);
        }
        }
        else {
        mail($toemail, $subject, $contents, $headers);

        $filename = "danke.php";
        $handle = fopen ($filename, "r");
            $contents = fread ($handle, filesize ($filename));
        fclose ($handle);

        $contents = str_replace ("::SentMessage::",$sentmessage,$contents);

        echo $contents;
        }
        ?>
        allerdings wird mir da nur eine leere Seite dann angezeigt...

        Kommentar


        • #5
          nun nach cycaps variante

          PHP-Code:
          <?

          include('config.php');

          global $emailfield;    
          global $required;
          global $sentmessage;
          global $toemail;
          global $fields;
          global $subject;

          function checkEmail()
          {
              global $emailfield;    
              if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $_POST[$emailfield])) 
              {
                  return "Invalid email address entered.";
              }
              else
              {
                  return "";
              }
          }

          function checkRequired()
          {
              global $required;
              foreach ($required as $value) 
              {
                  if($_POST[$value]=="")
                  {
                      if(!$rtn)
                      {
                          $rtn=$value;
                      }
                      else
                      {
                          $rtn="$rtn, $value";
                          $s="s";
                      }
                  }
              }
              if($rtn) $rtn = "You must enter values for the following field$s: $rtn";
              return $rtn;
          }

          if($emailfield)
          {
              $emailError = checkEmail();
          }
          if($required)
          {
              $requiredError = checkRequired();
          }

          if($emailError)
          {
              $sentmessage = $emailError;
          }
          if($requiredError)
          {
              $error = $requiredError;
              if($error!="")
              {
                  $sentmessage = $error;
              }
          }
          if($emailError || $requiredError)
          {
              $sentmessage = $sentmessage."<br>Go <a href='javascript:history.back(1)'>back</a> to form.";
          }
          else {
          $msg = array($name, $email, $message);
              $name = 'name';
              $email = 'email';
              $message = 'message';
                   
          $headers  = "MIME-Version: 1.0\r\n";
          $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

          $filename = "email.htm";
          $handle = fopen ($filename, "r");
              $contents = fread ($handle, filesize ($filename));
          fclose ($handle);

          foreach ($fields as $field)
          {
              $entry = $_POST[$field];
              if (!$entry) $entry = "No data submitted";
              $contents = str_replace ("::$field::",$entry,$contents);
          }
          mail($toemail, $subject, $contents, $headers);

          $filename = "danke.php";
          $handle = fopen ($filename, "r");
              $contents = fread ($handle, filesize ($filename));
          fclose ($handle);

          $contents = str_replace ("::SentMessage::",$sentmessage,$contents);

          echo $contents;
          }
          ?>
          bekomme auch nur eine leere Seite....

          find das echt komisch... weil das script wurde nicht selber geschrieben... von daher müsste das doch eigtl funktionieren... da meiner meinung nach auch nichts dran geändert wurde außer die config...

          Kommentar


          • #6
            leere seite... jop solltest auch noch ein echo $sentmessage oben reinbauen in den if

            Kommentar


            • #7
              hab ich doch....

              Kommentar


              • #8
                wir ham uns überschnitten hab mein Posting schnell editiert, aber da warst du wieder schneller

                Kommentar


                • #9
                  sozusagen deins wieder weg oder deins trotzdem lassen und ein echo rein??

                  Kommentar


                  • #10
                    @prinzessin sry aber das Script ist nicht wirklich der Brüller...
                    der emailcheck wird auch gültige emailadressen rauswerfen...
                    und irgendwie siehts nach register_globals = on aus...

                    Kommentar


                    • #11
                      meine version und

                      PHP-Code:
                      if($emailError || $requiredError)
                      {
                          
                      $sentmessage $sentmessage."<br>Go <a href='javascript:history.back(1)'>back</a> to form.";
                        echo 
                      $sentmessage;

                      Kommentar


                      • #12
                        PHP-Code:
                        echo $sentmessage."<br>Go <a href='javascript:history.back(1)'>back</a> to form."
                        uhuuuuu das musste dahin anstatt

                        PHP-Code:
                        $sentmessage $sentmessage."<br>Go <a href='javascript:history.back(1)'>back</a> to form."
                        is ja auch quatsch oder? ^^

                        aber jetzt ist das einfach oben in die geklatscht.... ich möchte das das in mein Design integriert wird... kann ich das jetz irgendwie noch machen, ohne das ich da nun meinen ganzen code mit darein schreiben muss??

                        Kommentar


                        • #13
                          Ehrliche antwort? Schmeiss das Script weg und baus neu Ich muss jetzt auch mal nach Hause, ich meld mich dann wenn ich @home bin nochmal

                          Kommentar


                          • #14
                            das is aber jetz zu aufwendig das wegzuschmeißen ^^ muss noch so viel machen...

                            Kommentar


                            • #15
                              was daran denn aufwendig?

                              Kommentar

                              Lädt...
                              X