Formular Problem

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

  • Formular Problem

    Hallo,

    ich bin ein totaler Anfänger und beginne nun mit dem Buch PHP 5 und MySQL 4 von Markt und Technik meine ersten Schritte zu machen.

    Ich wollte das Formularscript selber probieren und testen aber scheitere daran, ich erhalte weder eine Meldung ob das Formular abgeschickt wurde noch ob es einen Fehler gab, die EMails kommen auch nicht an.
    Hier mein Script:

    <html>
    <head>
    <title>Kontaktformular</title>
    </head>
    <body>
    PHP-Code:
    <?php

    //Mit $sent==1 wird getestet,ob das Formular abgeschickt wurde

    if ($_POST[sent]==1)
    {

        
    //Testen, ob alle Felder ausgefüllt wurden
        //und gegebenenfalls Fehlermeldungen ausgeben
        //und $sent löschen, damit das Formular erneut angezeigt wird

               
    if (!$_POST[vorname]) {echo 'Bitte geben Sie einen Vornamen ein <br>';unset($_POST[sent]);}
               if (!
    $_POST[nachname]) {echo 'Bitte geben Sie Ihren Nachnamen ein <br>'; unset($_POST[sent]);}
                if (!
    $_POST[email]) {echo 'Bitte geben Sie Ihre E-Mail-Adresse ein<p>'; unset($_POST[sent]);}

        
    //Testen, ob alle Felder ausgefüllt wurden.
        //Wenn ja, die E-Mail vorbereiten und verschicken
                
    If($vorname AND $nachname AND $email)
                 {
                 
    //Den Nachrichtentext der E-Mail für eine HTML-Mail zusammenbauen
                           
    $message="<html><body>";
                          
    $message.="<p>Vorname: ";
                          
    $message.=$_POST[vorname];
                           
    $message.="<br>Nachname: ";
                           
    $message.=$_POST[nachname];
                           
    $message.="<br>E-Mail. ";
                             
    $message.=$_POST[email];
                           
    $message.="<br><b>";
                          
    $message.=$_POST[rank];
                           
    $message.="</b></p></body></html>";

                 
    //Den Header der E-Mail erstellen
                  
    $header="\n Content-Type: text/html";
                  
    //Die E-Mail versenden.
                //Wenn kein Fehler auftritt, wird eine Erfolgsmeldung ausgegeben,
                        //andernfalls eine Fehlermeldung

                         
    if(mail("xxx@gmx.net""Eine E-Mail von meiner Webseite"$message$header))

                 {

                 
    //Erfolgsmeldung ausgeben
                 
    echo "Ihre Informationen wurden übermittelt";
                 }
                 else
                 {
                 
    //Fehlermeldung ausgeben
                 
    echo "Die Informationsübermittelung ist fehlgeschlagen, bitte versuchen Sie es später noch einmal.";
                 
    //$sent löschen, damit das Formular erneut angezeigt wird
                 
    unset($_POST[sent]);
                 }
                 }
    //schließende Klammer für If($vorname AND $nachname AND $email)

    }//schließende Klammer für If($sent==1)
    //Das Formular anzeigen, wenn $sent nicht existiert.
    //Dies ist der Fall, wenn die Seite das erste Mal aufgerufen wird,
    //oder wenn $sent oben bei einem Fehler gelöscht wird.

    if(!$_POST[sent])
    {
    ?>

    <form action="<?php echo $PHP_SELF?>" method=post>
    <!--Verstecktes Feld um zu Testen,-->
    <!--ob das Formular aufgerufen werden soll oder nicht-->
    <!-- mit htmlentities Sonderzeichen umwanden-->
    <input type=hidden name=sent value=1>
    Vorname <br><input type=Text name="vorname" value="<?php echo htmlentities($_POST[vorname]);?>" size=20><br>
    Nachname <br><input type=Text name="nachname" value="<?php echo htmlentities($_POST[nachname]);?>" size=20><p>
    E-Mail <br><input type=text name="email" value="<?php echo htmlentities($_POST[email]);?>" size=30><p>
    <h4>Wie hat Ihnen das Spiel gefallen?</h4><p>
    <select size=1 name="rank">
    <Option value="keine Angabe">keine Angabe</option>
    <Option value="sehr gut">sehr gut</option>
    <Option value="gut"> gut</option>
    <Option value="nicht so gut">nicht so gut</option>
    </select>
    <input type=submit name="submit" value="abschicken">
    </form>

    <?php
    }//schließende Klammer für If(!$sent)
    //Wichtig: Diese Klammer muss in einem php-Teil stehen

    ?>
    </body>
    </html>
    wie man sieht, habe ich es orginal übernommen und wollte es einfach ausprobieren und bei gelingen für mich anpassen.
    Kann mir jemand helfen? Bitte
    Zuletzt geändert von unicorn75; 27.09.2004, 13:34.

  • #2
    Re: Formular Problem

    mit dem Buch PHP 5 und MySQL 4 von Markt und Technik meine ersten Schritte zu machen.
    bringe es bitte in das geschäft zurück und verlange eine nachgebesserte version ohne fehler.

    mach mal bitte in der ersten zeile
    PHP-Code:
    print_r($_POST); 
    ausgabe?
    ändere mal bitte
    PHP-Code:
    If($vorname AND $nachname AND $email
    in
    PHP-Code:
    If($_POST['vorname'] AND $_POST['nachname'] AND $_POST['email']) 
    und füg ein paar testausgaben (echo) ein, damit du siehts, in welcher weise der code abgearbeitet wird.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      statt
      PHP-Code:
      If($vorname AND $nachname AND $email
      lieber
      PHP-Code:
      If($_POST['vorname'
      verwenden

      und btw, if schreibt man klein


      An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

      Kommentar


      • #4
        erstmal Danke für die Antworten und ich werde es jetzt gleich versuchen die Fehlermeldung lautete:

        Warning: mail(): Permission denied: unable to execute shell to run mail delivery binary '/usr/sbin/sendmail -t -i ' in /home/htdocs/ricarda/form1.php on line 45 -> das ist dir Zeile mit if(mail ....

        und es handelt sich um die diesjährige Ausgabe
        Zuletzt geändert von unicorn75; 27.09.2004, 13:53.

        Kommentar


        • #5
          Array ( [sent] => 1 [vorname] => Jana [nachname] => Weiss [email] => [rank] => 1 [submit] => abschicken ) Bitte geben Sie Ihre E-Mail-Adresse ein

          Dies ist das Ergebnis nach befolgen der Vorschläge (ist für den print_r Befehl, oder? Das Array () steht dann aber immer da?)

          Der Hinweis auf die fehlende Email Adresse ist korrekt.

          Bei vollständigen Ausfüllen erscheint:
          Warning: mail(): Permission denied: unable to execute shell to run mail delivery binary '/usr/sbin/sendmail -t -i ' in /home/htdocs/ricarda/form1.php on line 45
          Die Informationsübermittelung ist fehlgeschlagen, bitte versuchen Sie es später noch einmal (das ist wieder die if(mail ... zeile)


          PHP-Code:

           
          if(mail("unicorn-75@gmx.net""Eine E-Mail von meiner Webseite"$message$header))

                       {

                       
          //Erfolgsmeldung ausgeben
                       
          echo "Ihre Informationen wurden übermittelt";
                       }
                       else
                       {
                       
          //Fehlermeldung ausgeben
                       
          echo "Die Informationsübermittelung ist fehlgeschlagen, bitte versuchen Sie es später noch einmal.";
                       
          //$sent löschen, damit das Formular erneut angezeigt wird
                       
          unset($_POST[sent]);
                       }
                       }/ 
          Zuletzt geändert von unicorn75; 27.09.2004, 14:06.

          Kommentar


          • #6
            Bitte, Bitte HILFE, sonst stirbt meine erste Homepage schon jetzt.

            Kommentar


            • #7
              Original geschrieben von unicorn75
              Warning: mail(): Permission denied: unable to execute shell to run mail delivery binary '/usr/sbin/sendmail -t -i ' in /home/htdocs/ricarda/form1.php on line 45
              wenn es nicht dein server ist, dann solltest du deinen hoster fragen,warum du keine mails mit php verschicken darfst
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Laut meinen Provider sind Mails mit php kein Problem.

                Kommentar


                • #9
                  und was sagt er, warum du diese fehlermeldung bekommst?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Er hat keine Ahnung

                    Kommentar


                    • #11
                      Original geschrieben von unicorn75
                      Er hat keine Ahnung
                      dann wechsle den provider.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Ich habe das Formular auf meiner Testpage stehen (dort probiere ich verschiedene HTML Codes, Java Script Funktionen und jetzt auch PHP aus)

                        http://user.blue-cable.de/ricarda/

                        Kommentar


                        • #13
                          Ich habe das Formular auf meiner Testpage stehen (dort probiere ich verschiedene HTML Codes, Java Script Funktionen und jetzt auch PHP aus)
                          was willst du uns sagen?
                          Die Zeit hat ihre Kinder längst gefressen

                          Kommentar


                          • #14
                            Falls mal jemand reinschauen will und mir Tipps geben kann zum Rest der Page. Vielleicht gibt es ja Fehler, die ich als Anfänger nicht bemerke.

                            Kommentar


                            • #15
                              Vielleicht gibt es ja Fehler, die ich als Anfänger nicht bemerke.
                              die fehler auf deiner webseite haben wenig mit der genannten fehlermeldung zu tun, ... dein provider sollte dir sagen können, warum du das genannte programm nicht ausführen kannst
                              ich bin kein unix-experte und kann dir nicht sagen, warum du die shell nicht ausführen darfst ...
                              Die Zeit hat ihre Kinder längst gefressen

                              Kommentar

                              Lädt...
                              X