Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit der Contact Form

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit der Contact Form

    Hallo, ich bin Einsteiger und habe versucht, ein Mail.php mit Kontaktformular zu erstellen. Es funktioniert allerdings nicht. Kann mir jemand sagen, was ich falsch gemacht habe?:
    PHP-Code:
    <?php

        $to 
    "service@domain.co";
        
    $from $_REQUEST['email'];
        
    $name $_REQUEST['name'];
        
    $headers "From: $from";
        
    $subject "Support Anfrage über die Website";

        
    $fields = array();
        
    $fields{"Fname"}    = "First Name";
        
    $fields{"Lname"}    = "Last Name";
        
    $fields{"email"}    = "Email";
        
    $fields{"Fname"}    = "Subject";
        
    $fields{"message"}   = "Message";


        
    $body "Here is the message you got:\n\n"; foreach($fields as $a => $b){   $body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); }

        
    $send mail($to$subject$body$headers);

    ?>
    Dazu folgendes Kontaktformular:
    HTML-Code:
    <form action="mail.php" class="form-validation" autocomplete="on" method="post" id="cf">
                                <div class="row">
                                    <div class="col-sm-6 col-xs-12">
                                        <div class="single-input">
                                            <input type="text" placeholder="Vorname*" name="Fname">
                                        </div> <!-- /.single-input -->
                                    </div>
                                    <div class="col-sm-6 col-xs-12">
                                        <div class="single-input">
                                            <input type="text" placeholder="Nachname*" name="Lname">
                                        </div> <!-- /.single-input -->
                                    </div>
                                </div> <!-- /.row -->
                                <div class="single-input">
                                    <input type="email" placeholder="E-Mail-Adresse" name="email">
                                </div> <!-- /.single-input -->
                                <!-- /.row -->
                                <div class="single-input">
                                    <input type="text" placeholder="Betreff" name="sub">
                                </div> <!-- /.single-input -->
                                <textarea placeholder="Nachricht" name="message"></textarea>
    
    
                                <button class="tran3s p-color-bg">Senden</button>
                            </form>
    danke schon im Voraus!

  • #2
    Funktioniert nicht, ist keine brauchbare Fehlerbeschreibung, schau dir mal den FAQ Artikel zum Thema Debugging an und sag uns die Fehlermeldung:
    https://php-de.github.io/jumpto/faq/#debugging

    Weiter verwende nicht die super globale REQUEST Variable sondern nutzte die für dein Formular passende $_POST Variable.

    Weiter sieht das hier sehr komisch aus:
    PHP-Code:
     $fields{"Fname"}    = "First Name";
        
    $fields{"Lname"}    = "Last Name";
        
    $fields{"email"}    = "Email";
        
    $fields{"Fname"}    = "Subject";
        
    $fields{"message"}   = "Message"
    Verwende [] statt {}.

    Und zu guter letzt, benutzte eine Mailer Klasse und nicht die mail() Funktion. Auch dazu findest du einen passenden FAQ Artikel hier im Board:
    https://php-de.github.io/jumpto/faq/#mailerklasse

    Kommentar


    • #3
      Hallo, danke für deine Antwort. Mit der Zeile aus dem FAQ Artikel wird allerdings nur das ganze Script nochmal angezeigt...
      PHP-Code:
        error_reporting(-1);ini_set('display_errors', true); <?php      $to "service@domain.co";     $from $_REQUEST['email'];     $name $_REQUEST['name'];     $headers "From: $from";     $subject "Support Anfrage Ã¼ber die Website";      $fields = array();     $fields{"Fname"}    = "First Name";     $fields{"Lname"}    = "Last Name";     $fields{"email"}    = "Email";     $fields{"Fname"}    = "Subject";     $fields{"message"}   = "Message";           $body "Here is the message you got:\n\n"; foreach($fields as $a => $b){   $body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); }      $send mail($to$subject$body$headers);  ?>
      habe ich auch hier etwas falsch gemacht?

      Kommentar


      • #4
        Zitat von Zeichen32 Beitrag anzeigen
        Funktioniert nicht, ist keine brauchbare Fehlerbeschreibung, schau dir mal den FAQ Artikel zum Thema Debugging an und sag uns die Fehlermeldung:
        https://php-de.github.io/jumpto/faq/#debugging

        Weiter verwende nicht die super globale REQUEST Variable sondern nutzte die für dein Formular passende $_POST Variable.

        Weiter sieht das hier sehr komisch aus:
        PHP-Code:
        $fields{"Fname"} = "First Name";
        $fields{"Lname"} = "Last Name";
        $fields{"email"} = "Email";
        $fields{"Fname"} = "Subject";
        $fields{"message"} = "Message"
        Verwende [] statt {}.

        Und zu guter letzt, benutzte eine Mailer Klasse und nicht die mail() Funktion. Auch dazu findest du einen passenden FAQ Artikel hier im Board:
        https://php-de.github.io/jumpto/faq/#mailerklasse
        ok, habe nun alles so geändert wie du es beschrieben hast. Nun wird folgendes bei aufruf im Browser angezeigt:
        PHP-Code:
        $b){ $body .= sprintf("%20s: %s\n",$b,$_POST[$a]); } $send mail($to$subject$body$headers); ?> 
        zu den Mailerklassen: Ich wurde nun schon einmal aufgefordert, so etwas zu verwenden. Weiß aber leider gar nichts davon. Besteht diese Möglichkeit nicht auch...?

        Kommentar


        • #5
          ok, habe nun alles so geändert wie du es beschrieben hast. Nun wird folgendes bei aufruf im Browser angezeigt:
          Welche PHP-Version hast Du? Hat er evtl. Schwierigkeiten mit dem
          Code:
          =>
          , denn dort scheint er auszusteigen.

          zu den Mailerklassen: Ich wurde nun schon einmal aufgefordert, so etwas zu verwenden. Weiß aber leider gar nichts davon. Besteht diese Möglichkeit nicht auch...?
          Eigentlich nicht, denn Du bekommst dazu immer Links, die Dir weiterhelfen.
          Die Umsetzung zu verdrängen rechtfertigt nicht es falsch weiterzuführen...

          Weiterhin verwendest Du die POST Methode im Formular und kannst dann diese auch direkt abfragen: $_POST, anstatt $_REQUEST


          EDIT: Schade, CrossPost

          [MOD: geschlossen]
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar

          Lädt...
          X