Formular automatisch verarbeiten

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

  • Formular automatisch verarbeiten

    Wie kann ich ermitteln, wieviele und welche Felder mit einem Formular an ein PHP-skript übergeben werden ??

    Folgendes:
    ich habe mehrere Formulare und zu jeden eine eigene Mailroutine.
    ich möchte aber, daß ich eine routine für alle Formulare benutzen kann.

    einige Felder müssen definiert werden (Empfänger, Betreff), der rest soll dynamisch laufen, geht sowas ???, wenn ja, wie ?

    gruss

  • #2
    Indem du das Array $_POST bzw. $HTTP_POST_VARS verwendest und verschiedenen Parameter-Namen ( HIDDEN - Input ) z.B. mit Prefixen versiehst ( f2m_sendto, f2m_subject ) und definierst das diese gesetzt sein müssen.

    Alles andere im Array sind 'Werte'.

    PHP-Code:

    $message
    ="";

    foreach ( 
    $_POST AS $field=>$value ) {
        if ( 
    substr($field04)!="f2m_" ) {
            
    $message.="$key$value\n";
        }

    Mal so als Beispiel.
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      so soll das aussehen, aber irgendwie funzt das nich...

      PHP-Code:
      <?php
      if (strlen($action) == || $action == start) {?>
      <html>
      <head><title>mein formular</title></head>
      <body>
      <form action="dynamic-mailer.php?action=sendmail" method="post"
      enctype="text/plain">

      <input type="hidden" name="need_empfaenger" value="marco_jahn@web.de">
      <input type="hidden" name="need_betreff" VALUE="Betreff">

      <input type="text" name="Absender" size="20">
      <textarea name="sonstiges" rows="3" cols="20"></textarea>

      <input type="submit" value="abschicken"><input type="reset"
      value="rückgängig">
      </form>
      </body>
      </html>


      <?php
      } elseif (action=="sendmail") {
          
      $mail_empfaenger $_POST("need_empfaenger");
          
      $mail_betreff $_POST("need_betreff");
          
          
      $mail_body "";
          
          foreach ( 
      $_POST AS $field=>$value ) {
              if (
      substr($field05)!="need_" ) {
                  
      $mail_body.="$key$value\n";
              }
          }
          
          echo 
      $mail_betreff;
          echo 
      $mail_body;

          
      $mail_header "From: mailserver (formular)\r\n";
          
      $mail_header .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
          
      $mail_header .= "X-Mailer: PHP "phpversion();
          
      mail($mail_empfaenger$mail_betreff$mail_body$mail_header);
              
      }
      ?>
      gruss

      Kommentar


      • #4
        jetzt hab ichs mal getrennt und bekomme jetzt eine Fehlermeldung:
        Warning: Invalid argument supplied for foreach() in /dynamic-mailer.php on line 7

        PHP-Code:
        <?php
            $mail_empfaenger 
        $_POST["need_empfaenger"];
            
        $mail_betreff $_POST["need_betreff"];
            
            
        $mail_body "";
            
            foreach ( 
        $_POST AS $field=>$value ) {
                if (
        substr($field05)!="need_" ) {
                    
        $mail_body.="$key$value\n";
                }
            }
            
            echo 
        $mail_betreff;
            echo 
        $mail_body;

            
        $mail_header "From: mailserver (formular)\r\n";
            
        $mail_header .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
            
        $mail_header .= "X-Mailer: PHP "phpversion();
            
        mail($mail_empfaenger$mail_betreff$mail_body$mail_header);
        ?>
        Zuletzt geändert von MoRtAlAn; 29.05.2002, 10:12.

        Kommentar


        • #5
          Welche PHP Version hast Du??

          $_POST gibt es erst ab PHP 4.1.0. Vorher heißt's $HTTP_POST_VARS.
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #6
            jepp, hab ich gerade gemerkt, jetzt funktionierts fast, aber das bekomme ich auch noch hin...

            thx!

            Kommentar

            Lädt...
            X