ejunky: Formmailer PHP - missing fields

Hallo zusammen

ich habe mir grad die Anleitung zum PHP-Formmailer angesehen und getestet, funzt ganz wunderbar. Ich möchte gern noch verhindern, dass das Formular leer versendet werden kann.

<code><input type=hidden name="required" value="Vorname,Name,Nachricht"></code>

ich weiss aber nicht wie ich die in das php-script integriere, wenn ich die änderung im HTML-Teil mache, kann das F immernoch leer verschickt werden.

Kann mir jemand einen Tipp geben?

Danke

  1. Hallo,

    ich weiss aber nicht wie ich die in das php-script integriere, wenn ich die änderung im HTML-Teil mache, kann das F immernoch leer verschickt werden.

    Du kannst doch einfach beim PHP abfragen, ob das Feld leer ist und dann ne Fehlermeldung ausgeben.

    gruß aus Senftenberg am See

    1. wie und wo muss ich das denn in das Script eintragen?

      <?php

      Konfiguration

      Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!

      An welche Adresse sollen die Mails gesendet werden?

      $strEmpfaenger = 'th@xxx.de';

      Welche Adresse soll als Absender angegeben werden?

      (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)

      $strFrom       = '"thema" IhrAndererName@provider.xy';

      Welchen Betreff sollen die Mails erhalten?

      $strSubject    = 'Anfrage';

      Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?

      Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!

      $strReturnhtml = 'http://www.....html';

      Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?

      $strDelimiter  = ":\t";

      Ende Konfiguration

      if($_POST)
      {
       $strMailtext = "";

      while(list($strName,$value) = each($_POST))
       {
        if(is_array($value))
        {
         foreach($value as $value_array)
         {
          $strMailtext .= $strName.$strDelimiter.$value_array."\n";
         }
        }
        else
        {
         $strMailtext .= $strName.$strDelimiter.$value."\n";
        }
       }

      if(get_magic_quotes_gpc())
       {
        $strMailtext = stripslashes($strMailtext);
       }

      mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
        or die("Die Mail konnte nicht versendet werden.");
       header("Location: $strReturnhtml");
       exit;
      }

      ?>

      Hallo,

      ich weiss aber nicht wie ich die in das php-script integriere, wenn ich die änderung im HTML-Teil mache, kann das F immernoch leer verschickt werden.
      Du kannst doch einfach beim PHP abfragen, ob das Feld leer ist und dann ne Fehlermeldung ausgeben.

      gruß aus Senftenberg am See

      1. Hallo,

        if($_POST)
        {
        $strMailtext = "";

        if ($_POST['feld']=='') die('Das Feld darf nich leer sein');
        und statt feld benutzt du den Namen des entsprechenden Feldes.

        while(list($strName,$value) = each($_POST))
        {
          if(is_array($value))
          {
           foreach($value as $value_array)
           {
            $strMailtext .= $strName.$strDelimiter.$value_array."\n";
           }
          }

        gruß aus Senftenberg am See

        1. Parse error: parse error, unexpected T_STRING in line 60

          Hab ich da was vergessen?

          .
          .
          .

          mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
            or die("Die Mail konnte nicht versendet werden.");
           header("Location: $strReturnhtml");
           exit;
          }

          if($_POST)
          {
          $strMailtext = "";
          if ($_POST['E-Mail']=='') die('Das Feld darf nich leer sein');
          und statt feld benutzt du den Namen des entsprechenden Feldes.

          while(list($strName,$value) = each($_POST))
          {
          if(is_array($value))
          {
          foreach($value as $value_array)
          {
          $strMailtext .= $strName.$strDelimiter.$value_array."\n";
          }

          ?>

          1. Hallo,

            Parse error: parse error, unexpected T_STRING in line 60

            Entweder Anführungszeichen, Semikola oder Klammern vergessen.

            Hab ich da was vergessen?

            Was steht denn in Zeile 60?
            Dein Feldname ist wirklich E-Mail?
            <input type="text" name="E-Mail">E-Mail</input>

            mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
              or die("Die Mail konnte nicht versendet werden.");
            header("Location: $strReturnhtml");
            exit;
            }

            if($_POST)
            {
            $strMailtext = "";
            if ($_POST['E-Mail']=='') die('Das Feld darf nich leer sein');
            und statt feld benutzt du den Namen des entsprechenden Feldes.

            while(list($strName,$value) = each($_POST))
            {
            if(is_array($value))
            {
            foreach($value as $value_array)
            {
            $strMailtext .= $strName.$strDelimiter.$value_array."\n";
            }

            ?>

            gruß aus Senftenberg am See

            1. hab hier nochmal das komplette script, in zeile 60 stand der kommentar „...und statt feld benutzt du den Namen des entsprechenden Feldes.“
              habe ich rausgenommen, jetzt fehler in 103.-das nerft.

              also:

              <?php

              Konfiguration

              Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!

              An welche Adresse sollen die Mails gesendet werden?

              $strEmpfaenger = 'th@mail.de';

              Welche Adresse soll als Absender angegeben werden?

              (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)

              $strFrom       = '"thema" IhrAndererName@provider.xy';

              Welchen Betreff sollen die Mails erhalten?

              $strSubject    = 'Anfrage';

              Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?

              Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!

              $strReturnhtml = 'http://www...';

              Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?

              $strDelimiter  = ":\t";

              Ende Konfiguration

              if($_POST)
              {
               $strMailtext = "";

              while(list($strName,$value) = each($_POST))
               {
                if(is_array($value))
                {
                 foreach($value as $value_array)
                 {
                  $strMailtext .= $strName.$strDelimiter.$value_array."\n";
                 }
                }
                else
                {
                 $strMailtext .= $strName.$strDelimiter.$value."\n";
                }
               }

              if(get_magic_quotes_gpc())
               {
                $strMailtext = stripslashes($strMailtext);
               }

              mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
                or die("Die Mail konnte nicht versendet werden.");
               header("Location: $strReturnhtml");
               exit;
              }

              if($_POST)
              {
              $strMailtext = "";
              if ($_POST['E-Mail']=='') die('Das Feld darf nich leer sein');

              while(list($strName,$value) = each($_POST))
              {
              if(is_array($value))
              {
              foreach($value as $value_array)
              {
              $strMailtext .= $strName.$strDelimiter.$value_array."\n";
              }

              ?>
              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
              "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
              <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
                  <head>
                      <title>Einfacher PHP-Formmailer</title>
                      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                  </head>
                  <body>
                      <h1>Beispielformular</h1>
                      <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
              <!-- Hier die eigentlichen Formularfelder eintragen. Die folgenden sind Beispielangaben. -->
                          <dl>
                              <dt>Ihr Name:</dt>
                              <dd><input type="text" name="Versender" /></dd>
                              <dt>Ihre E-Mail:</dt>
                              <dd><input type="text" name="E-Mail" /></dd>
                              <dt>Sie k&ouml;nnen:</dt>
                              <dd><input type="checkbox" name="kannwas[]" value="HTML" />HTML <input type="checkbox" name="kannwas[]" value="PHP" />PHP</dd>
                              <dt>Sie sind:</dt>
                              <dd><input type="radio" name="sexus" value="M" />Mann <input type="radio" name="sexus" value="Frau" />Frau</dd>
                              <dt>Sie m&ouml;gen:</dt>
                              <dd><select name="Browser"><option value="Opera">Opera</option><option value="Mozilla">Mozilla</option></select></dd>
                              <dt>Bemerkungen:</dt>
                              <dd><textarea name="Bemerkungen" rows="3" cols="20">Bemerkungen</textarea></dd>
                          </dl>
                          <!-- Ende der Beispielangaben -->
                          <p>
                          <input type="submit" value="Senden" />
                          <input type="reset" value="Zurücksetzen" />
                          </p>
                      </form>
                  </body>
              </html>

              Hallo,

              Parse error: parse error, unexpected T_STRING in line 60
              Entweder Anführungszeichen, Semikola oder Klammern vergessen.
              Hab ich da was vergessen?
              Was steht denn in Zeile 60?
              Dein Feldname ist wirklich E-Mail?
              <input type="text" name="E-Mail">E-Mail</input>
              mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
                or die("Die Mail konnte nicht versendet werden.");
              header("Location: $strReturnhtml");
              exit;
              }

              if($_POST)
              {
              $strMailtext = "";
              if ($_POST['E-Mail']=='') die('Das Feld darf nich leer sein');
              und statt feld benutzt du den Namen des entsprechenden Feldes.

              while(list($strName,$value) = each($_POST))
              {
              if(is_array($value))
              {
              foreach($value as $value_array)
              {
              $strMailtext .= $strName.$strDelimiter.$value_array."\n";
              }

              ?>
              gruß aus Senftenberg am See

              1. Hallo,

                hab hier nochmal das komplette script, in zeile 60 stand der kommentar „...und statt feld benutzt du den Namen des entsprechenden Feldes.“

                den Kommentar solltest du auch nich so übernehmen.

                habe ich rausgenommen, jetzt fehler in 103.-das nerft.

                103 ist wo?

                gruß aus Senftenberg am See