Ankündigung

Einklappen
Keine Ankündigung bisher.

Kontaktformular - Versand?!

Einklappen

Neue Werbung 2019

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

  • Kontaktformular - Versand?!

    Hallo zusammen,

    ich habe gerade ein Kontaktformular erstellt, doch leider funktioniert der Versand hierbei nicht bzw auch alle weiteren Error-Befehle. Der Sendungs-Button ist glaube ich einfach unaktiv.

    Ich habe folgendes programmiert:

    <?php


    $enterMail =<<<EOT
    <table width="350" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td><input class="size1" name="sender" type="text" value="--- E-Mail Adresse eingeben ---" title="E-Mail Adresse eingeben" onfocus="this.value=''"></td>
    </tr>
    <tr>
    <td height="5"></td>
    </tr>
    <tr>
    <td><input class="size1" name="subject" type="text" value="--- Betreff ---" title="Betreff" onfocus="this.value=''"></td>
    </tr>
    <tr>
    <td height="10"></td>
    </tr>
    <tr>
    <td><textarea class="mailText" name="message" id="textarea" cols="45" rows="5"></textarea></td>
    </tr>
    <tr>
    <td height="10"></td>
    </tr>
    <tr align="right">
    <td><a href="javascript:document.newsletterForm.submit(); "><input type="submit" value="E-Mail senden" title="E-Mail senden" alt="E-Mail senden" border="0" class="button"></a></td>
    </tr>
    </table>
    EOT;

    $confirm =<<<EOT

    <div class="contact">
    <p style="height:286px;">
    Der Versand war erfolgreich<br><br>
    Vielen Dank für ihre E-Mail
    </p>
    </div>
    EOT;

    // Diese Funktion überprüft, ob eine syntaktische korrekte E-Mail Adresse eingetragen wurde
    function checkEmail($email) {
    return eregi("^([a-zA-Z0-9]){1}([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$",$email);
    }

    // Abfrage, ob das Formular schon abgeschickt worden ist
    if (isset($_POST["formSend"]) && ($_POST["formSend"]==1)){
    $error = "";

    // Auslesen der Forumlarfelder
    $sender = $_POST["sender"];
    $subject = $_POST["subject"];
    $message = $_POST["message"];
    //$recipient = "SB@gmx.de";
    $recipient = "SB@gmx.de";

    // Überprüfen mit Hilfe der Funktion 'checkEmail' ob die E-Mail Adresse korrekt ist
    if (empty($sender) || !checkEmail($sender)){
    $error = "Bitte geben Sie eine gültige E-Mail Adresse ein!<br>";
    }
    if (empty($subject) || $subject == "--- Betreff ---"){
    $error .= "Bitte geben Sie einen Betreff ein!<br>";
    }
    if (empty($message)){
    $error .= "Bitte geben Sie eine Nachricht ein!<br>";
    }

    // für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden
    $header = 'MIME-Version: 1.0' . "\r\n";
    $header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    // zusätzliche Header
    $header .= 'To: <' . $recipient . '>' . "\r\n";
    $header .= 'From: <' . $sender . '>' . "\r\n";

    // verschicke die E-Mail
    if (empty($error)){
    if (!mail($recipient, $subject, $message, $header)){
    // Falls der Versand nicht erfolgreich war, Anzeige der Fehlermeldung
    $error = "Es ist ein Fehler beim Mailversand aufgetreten";
    }
    }
    }

    //
    if (! empty($error)){
    $errorMsg =<<<EOT
    <div class='errorMsg'>
    $error
    </div>
    EOT;
    } else {
    $errorMsg = "";
    }

    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>studibusiness.de</title>

    <link rel="stylesheet" type="text/css" href="css/styles.css" media="screen, projection">

    </head>

    <body>

    <div id="container">

    <div id="logo">
    <div class="image">
    <a href="index.html" title="Home"><img src="img/logo.gif" border="0" width="180" height="32" alt="Logo" /></a>
    </div>
    </div>

    <div id="box">
    <div class="border">
    <div class="kontakt">
    <div class="balken">
    <div class="text">
    Kontakt
    </div>
    </div>
    <div class="inhalt">
    Telefon-Nr<br />
    <a href="kontakt.php" title="Kontaktformular">Kontaktformular</a><br />
    </div>
    </div>

    <ul class="navi">
    <li><a href="vermittlung.html" title="Vermittlung">&raquo; &nbsp;Vermittlung</a></li>
    <li><a href="impressum.html" title="Impressum">&raquo; &nbsp;Impressum</a></li>
    </ul>

    </div>
    <div id="boxunten">
    <span style="display:block"><img src="img/box_unten.gif" /> </span>
    </div>
    </div>

    <div id="content">
    <div class="header">
    <span style="display:block"><img src="img/header.jpg" width="622" height="93" alt="studibusiness header" title="Studibusiness" /></span>
    <span style="display:block"><img src="img/header_start.jpg" width="622" height="40" alt="studibusiness headline" title="Studibusiness" /></span>
    </div>
    <div class="contentstart">
    <div class="text">
    texteingabe<br /><br />
    <?php
    if (!isset($_POST["formSend"])){
    echo $enterMail;
    } else if (isset($_POST["formSend"]) && ($_POST["formSend"]==1) && !empty($errorMsg)){
    echo $enterMail;
    echo $errorMsg;
    } else {
    echo $confirm;
    }
    ?>
    </div><br />
    </div>
    <div id="footer">
    <div class="balken"><div class="copy">&copy; 2008 StudiBusiness</div></div>
    </div>

    </div>

    </div>

    </body>
    </html>


    Kann mir jemand verraten,wo der Fehler liegt?

    Lieben Dank im Voraus

  • #2
    Hallo StudiB,

    benutz doch bitte hier im Forum die php Tags die du im Editor findest um code anzuzeigen.
    Eine genaue Fehlerbeschreibung wäre auch hilfreich. Benutze auch

    PHP-Code:
    error_reporting(E_ALL);
    // und für sql Anweisungen
    mysql_error(); 
    und hat es einen speziellen Grund, dass du Heredoc benutzt?

    Kommentar


    • #3
      Hi Jego,

      bitte entschuldige, ich bin neu in dem Forum und auch neu im Umgang mit php...
      Mein Problem ist,dass das Kontaktformular nicht funktioniert. Wenn ich auf den Button Email versenden gehe, passiert einfach nichts.
      Man kann es hier sehen:
      studibusiness.de

      Lg

      Kommentar


      • #4
        PHP-Code:
        // Ãœberprüfen mit Hilfe der Funktion 'checkEmail' ob die E-Mail Adresse korrekt ist
        if (empty($sender) || !checkEmail($sender)){
        $error "Bitte geben Sie eine gültige E-Mail Adresse ein!<br>";
        }
        if (empty(
        $subject) || $subject == "--- Betreff ---"){
        $error .= "Bitte geben Sie einen Betreff ein!<br>";
        }
        if (empty(
        $message)){
        $error .= "Bitte geben Sie eine Nachricht ein!<br>";

        Wenn alle Fehler festgestellt werden, dann wird $error überschrieben - eine schon vorhandene Fehlermeldung geht verloren


        PHP-Code:
        // für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden 
        Die mail, die du da zusammenbaust, entspricht nicht den Anforderungen (RFC). Benutz eine fertige Klasse, z.B. PHP-Mailer. In deiner Aufgabenstellung ist es m.E. eh unnütz, eine HTML-Mail zu senden, da du nur reinen Text transportierst.

        Zum Debuggen setz mal ein print_r($_POST) pasend ein. Dies gibt dir aus, was an Daten übertragen wird und hilft in den meisten Fällen, das Problem zu erkennen.

        Kommentar


        • #5
          Dein Formular hat keine <form> tags

          Kommentar


          • #6
            Du versuchst über Javascript dein Formular newsletterForm abzuschicken, jedoch existiert dieses nicht.

            Ich würde auch nicht JavaScript verwenden, sondern PHP. Wahlweise beides, aber Prüfung der Felder etc würde ich mit Javascript nicht machen.

            Setzte um deine Formular-Elemente ein <form action="?" method="post">...</form> und entferne dein <a href="javascript:document...."> ...

            Kommentar

            Lädt...
            X