Wo ist der Fehler im PHP-Formular ???

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wo ist der Fehler im PHP-Formular ???

    Hallo zusammen,

    meine erste PHP-Stunde liegt grad hinter mir und ich bin ganz begeistert. Doch zu allem Unglück klappt das Formular-Senden per php an eine E-Mail-Adresse nicht!.

    Im Beispiel-Formular soll durch Klick auf den Sende-Button die Datei auswerten.php aufgerufen und die Formular-Daten per E-Mail versendet werden.

    Wenn ich es online teste, verändert sich die URL zu [...]auswerten.php, aber das Browser-Fenster bleibt leer.

    [COLOR=crimson]Es wäre toll, wenn mir hier jemand weiterhelfen kann. Tausend Dank schon mal![/COLOR]

    Hier die beiden Dateien:
    1. formular_test.html:
    HTML Code:
    <form name="formular" action="auswerten.php" method="post">
    Textfeld (E-Mail):
    <input type="text" name="email" size="50" maxlength="50" value="email"><br>
    
    Drop-Down-Liste mit Mehrfachselektion:
    <select multiple name="varnamedrop2[]" size="2" >
    <option value="interne_bezeichnung1">option1</option>
    <option selected value="interne_bezeichnung2">option2</option>
    </select><br>
    </form>
    2. auswerten.php
    PHP Code:
    <?php
    if(isset($_POST['send']))
      {
      if(empty(
    $_POST['email]) || empty($_POST['varnamedrop2']))
        {
        echo"Bitte füllen Sie alle Felder aus!";
        }
      else
        {
        $empfaenger="ich@web.de";
        $betreff="Umfrage";
        $header="From: " . $_POST['
    email'] . "\n";
        $nachricht.="Eingabe im Textfeld (E-Mail): " . $_POST['
    email'] . "\n";
         $nachricht.="Auswahl der Drop-Down-Liste mit Mehrfachselektion: " . $_POST['
    varnamedrop2'] . "\n" ---- Ende der Umfrage";

        mail($empfaenger,$betreff,$nachricht,$header);

        echo "Vielen Dank für Ihre Meinung!";
        }

    else
    {
      echo "Bitte füllen Sie das Formular erneut aus. Vielen Dank!";
    }
    ?>
    Last edited by nudelwut; 09-11-2005, 21:25.

  • #2
    Du meinst nicht das du

    PHP Code:
    if(empty($_POST['email]) 
    in

    PHP Code:
    if(empty($_POST['email']) 
    ändern solltest?


    EDIT:

    Huch da ist ja noch mehr



    Überdenk nochmal die Struktur deines IF ELSE..

    Tip... IF IF ELSE ELSE wird soooo nix.. Zähl mal { und }


    Last edited by hhcm; 09-11-2005, 18:35.
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Comment


    • #3
      Re: Wo ist der Fehler im PHP-Formular ???

      http://www.php-resource.de/forum/sho...threadid=50454
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Comment


      • #4
        PHP Code:
        <?php
        if(isset($_POST['send']))
        {
            if(empty(
        $_POST['email']) || empty($_POST['varnamedrop2']))
            {
                echo
        "Bitte füllen Sie alle Felder aus!";
            }
            else
            {
            
        $empfaenger="ich@web.de";
            
        $betreff="Umfrage";
            
        $header="From: " $_POST['email'] . "\n";
            
        $nachricht.="Eingabe im Textfeld (E-Mail): " $_POST['email'] . "\n";
            
        $nachricht.="Auswahl der Drop-Down-Liste mit Mehrfachselektion: " $_POST['varnamedrop2'] . "\n ---- Ende der Umfrage";

            
        mail($empfaenger,$betreff,$nachricht,$header);

            echo 
        "Vielen Dank für Ihre Meinung!";
        }
        else
        {
          echo 
        "Bitte füllen Sie das Formular erneut aus. Vielen Dank!";
        }
        ?>
        Liebe Grüße,
        SteKoe!

        PHP Tutorials
        Peter Kropff | Quakenet | Schattenbaum.net

        Comment


        • #5
          Original geschrieben von hhcm
          Du meinst nicht das du

          PHP Code:
          if(empty($_POST['email]) 
          in

          PHP Code:
          if(empty($_POST['email']) 
          ändern solltest?

          Tip... IF IF ELSE ELSE wird soooo nix.. Zähl mal { und }
          Richtig, da fehlt ein Anführungsstrich hinter email ... danke!

          Ah - da fehlt eine abschließende Klammer, genau!


          Super, so funktioniert es auch nun:
          PHP Code:
          <?php
          if(isset($_POST['send']))
            {
            if(empty(
          $_POST['email']) || empty($_POST['varnamedrop2']))
              {
              echo
          "Bitte füllen Sie alle Felder aus!";
              }
            else
              {
              
          $empfaenger="ich@web.de";
              
          $betreff="Umfrage";
              
          $header="From: " $_POST['email'] . "\n";
              
          $nachricht.="Eingabe im Textfeld (E-Mail): " $_POST['email'] . "\n";
              
          $nachricht.="Auswahl der Drop-Down-Liste mit Mehrfachselektion: " $_POST['varnamedrop2'] . "\n ---- Ende der Umfrage";

              
          mail($empfaenger,$betreff,$nachricht,$header);

              echo
          "Vielen Dank für Ihre Meinung!";
              }
            }
          else
          {
            echo
          "Bitte füllen Sie das Formular erneut aus. Vielen Dank!";
          }
          ?>
          Aber etwas begreif ich als Anfängerin immernoch nicht.
          Ich habe Google genutzt und die Suche-Funktion im Forum, doch ich kapier das zugrunde liegende Prinzip nicht.

          Wie bekomme ich die Auswahl mitgeteilt bei select multiple?
          Wenn ich folgendes habe:
          PHP Code:
          <select multiple name="varnamedrop2[]" size="2" >
          <option value="interne_bezeichnung1">option1</option>
          <option value="interne_bezeichnung2">option2</option>
          </select><br>

          <?php
              $nachricht
          .="Auswahl der Drop-Down-Liste mit Mehrfachselektion: " $_POST['varnamedrop2'] . "\n";
          ?>
          und das per E-Mail senden lasse, bekomme ich in der E-Mail mitgeteilt:

          Auswahl der Drop-Down-Liste mit Mehrfachselektion: Array
          Last edited by nudelwut; 09-11-2005, 22:05.

          Comment


          • #6
            $_POST['varnamedrop2'] ist doch ein Array!

            PHP Code:
            foreach($_POST['varnamedrop2'] AS $option) {
              
            $_option .= $option;

            In $_option sollten nun alle Werte aus $_POST['varnamedrop2'] drin sein ... glaube ich...

            &raquo; http://de.php.net/array
            &raquo; http://de.php.net/foreach
            Last edited by stekoe2000; 09-11-2005, 21:51.
            Liebe Grüße,
            SteKoe!

            PHP Tutorials
            Peter Kropff | Quakenet | Schattenbaum.net

            Comment


            • #7
              Hallo stekoe2000!

              Vielen Dank für deine Hilfe!

              Kurz noch zu meinem Fehler davor:
              Ich hab den Tipp von hhcm so verstanden, dass nach dem zweiten echo zwei ausleitende Klammern stehen müssen, oder lieg ich da wieder falsch?

              PHP Code:
              <?php
              if(isset($_POST['send']))
                {
                if(empty(
              $_POST['email']) || empty($_POST['varnamedrop2']))
                  {
                  echo
              "Bitte füllen Sie alle Felder aus!";
                  }
                else
                  {
                  
              $empfaenger="ich@web.de";
                  
              $betreff="Umfrage";
                  
              $header="From: " $_POST['email'] . "\n";
                  
              $nachricht.="Eingabe im Textfeld (E-Mail): " $_POST['email'] . "\n";
                   
              $nachricht.="Auswahl der Drop-Down-Liste mit Mehrfachselektion: " $_POST['varnamedrop2'] . "\n ---- Ende der Umfrage";

                  
              mail($empfaenger,$betreff,$nachricht,$header);

                  echo
              "Vielen Dank für Ihre Meinung!";
                  }
                }
              else
              {
                echo
              "Bitte füllen Sie das Formular erneut aus. Vielen Dank!";
              }
              ?>
              Und ... tausend Dank für die Hilfe mit dem array - ich bin leider in php noch so fremd, dass ich nicht weiß, wie ich ob ich den Code
              PHP Code:
              foreach($_POST['varnamedrop2'] AS $option) {
                
              $_option .= $option;

              in die Variable $nachricht.= einbinden kann, so dass ich per mail() das ganze versenden kann ?

              Comment


              • #8
                Der Code scheint soweit richtig ... nun um die Optionen in deine eMail einzufügen:

                die foreach Schleife vorher ausführen, dann in mail() statt
                PHP Code:
                  $nachricht.="Auswahl der Drop-Down-Liste mit Mehrfachselektion: " $_POST['varnamedrop2'] . "\n ---- Ende der Umfrage"
                einfach

                PHP Code:
                  $nachricht.="Auswahl der Drop-Down-Liste mit Mehrfachselektion: " $_option "\n ---- Ende der Umfrage"
                Btw.. www.schattenbaum.net ... und www.php.net sind deine Freunde in diesem Falle ... weil du das sicherlich auch mal lernen willst... sooo schwer ist das nun auch wieder nicht
                Liebe Grüße,
                SteKoe!

                PHP Tutorials
                Peter Kropff | Quakenet | Schattenbaum.net

                Comment


                • #9
                  Aaah!

                  Nun wird's klar ! Leise und beständig rieseln die Schuppen von meinen Augen.

                  DANKE!

                  Werde mich auf jeden Fall die nächsten Tage intensiver mit php beschäftigen und die Links mal angucken.
                  Puh - der erste Tag mit php war jedenfalls schon 'n Erlebnis

                  Comment


                  • #10
                    Rein Interesse halber: Wo nimmst du PHP Stunden? ... Ich Depp habe mir das in (bisher) 5 Jahren selber beigebracht?
                    Liebe Grüße,
                    SteKoe!

                    PHP Tutorials
                    Peter Kropff | Quakenet | Schattenbaum.net

                    Comment


                    • #11
                      Nee, mit dem ersten Tag und dem Lehr-Smiles dahinter mein ich ebenso das mühsame Selbststudium und die lehrreichen Antworten auf mein wundersames selbstgebasteltes Formular.

                      Aller Anfang ist schwer - und ich hoffe, dass ich fünf Jahre durchhalte und dann zumindest die arrays richtig definieren und aufrufen kann

                      Comment

                      Working...
                      X