Kontaktformular - Daten werden nicht verschickt

08154711

Erfahrenes Mitglied
Hi,
Bei dem Kontaktformular sind alle Felder die nicht als optional gekennzeichnet sind als Pflichtfelder deklariert. Die Daten werden allerdings nicht verschickt und es kommt auch keine Fehlermeldung. Danke für jeden Tipp.
PHP:
<?php
// Dieser nun folgende PHP-Teil kommt in die Datei form.php ganz oben oder an erster Stelle.
// Er muss in angepasst werden im Bereich
// - $absender
// - und alternativ im Bereich header()

// Die folgende Zeile dient dazu, mögliche Fehler zu ermitteln. Werden in der Testphase keine ausgegeben,
// könnt ihr vor error_reporting(E_ALL); // setzen.
error_reporting(E_ALL);
if(isset($_POST['action']) AND $_POST['action'] == 1) {

    $error_a = ""; // Variable indiziert
    $textmitteilung = ""; // Variable indiziert
    $absender = "FROM: info@lenkercrew.de"; // Deine E-Mailadresse für die Bestätigungsmail an den Absender des Formular
    $betreff = "Kontaktmitteilung aus Formular"; // Dein Betreff-Text

    // Prüft, ob eine Anrede ausgewählt wurde, wenn nicht, bleibt die Variable leer.
    if(isset($_POST['anrede']) AND $_POST['anrede'] != '') { $m_anrede = $_POST['anrede']; } else { $m_anrede = ""; }
    // Prüft, ob der Vorname angegeben wurde. Wenn nicht, erfolgt eine Fehlermeldung
    if(isset($_POST['vorname']) AND $_POST['vorname'] != '') { $m_vorname = $_POST['vorname']; } else { $error_a = 6; }
    // Prüft, ob der Familienname angegeben wurde. Wenn nicht erfolgt eine Fehlermeldung.
    if(isset($_POST['fname']) AND $_POST['fname'] != '') { $m_fname = $_POST['fname']; } else { $error_a = 5; }
    // Prüft, ob eine Strasse angegeben wurde. Wenn nicht, bleibt die Variable leer.
    if(isset($_POST['strasse']) AND $_POST['strasse'] != '') { $m_strasse = $_POST['strasse']; } else { $m_strasse = ""; }
    // Prüft, ob die Hausnummer angegeben wurde. Wenn nicht, bleibt die Variable leer.
    if(isset($_POST['hausnummer']) AND $_POST['hausnummer'] != '') { $m_hausnummer = $_POST['hausnummer']; } else { $m_hausnummer = ""; }
    // Prüft, ob eine PLZ angegeben wurde. Wenn nicht, bleibt die Variable leer.
    if(isset($_POST['plz']) AND $_POST['plz'] != '') { $m_plz = $_POST['plz']; } else { $m_plz = ""; }
    // Prüft, ob ein Wohnort angegeben wurde. Wenn nicht, bleibt die Variable leer.
    if(isset($_POST['ort']) AND $_POST['ort'] != '') { $m_ort = $_POST['ort']; } else { $m_ort = ""; }
    // Prüft, ob eine Vorwahl angegeben wurde. Wenn nicht, bleibt die Variable leer.
    if(isset($_POST['vw']) AND $_POST['vw'] != '') { $m_vw = $_POST['vw']; } else { $m_vw = ""; }
    // Prüft, ob die Rufnummer angegeben wurde. Wenn nicht, bleibt die Variable leer.
    if(isset($_POST['rn']) AND $_POST['rn'] != '') { $m_rn = " / ".$_POST['rn']; } else { $m_rn = ""; }
    // Prüft, ob eine Mitteilung erfolgte. Wenn nicht, gibt es eine Fehlermeldung.
    if(isset($_POST['mitteilung']) AND $_POST['mitteilung'] != '') { $m_mitteilung = $_POST['mitteilung']; } else { $error_a = 4; }
    // Prüft, ob die E-Mail-Adresse angegeben wurde.
    if(isset($_POST['email'])) {
        // Prüft, ob die E-Mailadresse gültig ist. Wenn nicht, folgt eine Fehlermeldung
        if(preg_match("/^[^s@<>_-]+@[^s@<>]+.[a-z]{2,4}$/", $_POST['email'])) { $m_email = $_POST['email']; }
        else { $error_a = 1; }
    }
    // Prüft, ob alle Pflichtfelder vorhanden sind.
    if(isset($m_vorname) AND isset($m_fname) AND isset($m_mitteilung) AND isset($m_email)) {
        // E-Mail-Inhalte zusammenstellen
           
        // Aktuelles Datum
        $aktuelles_datum = date("d.m.Y, H:i:s");

        // Mitteilungstext für den Seiteninhaber
        $textmitteilung_a = "Mitteilung vom Webformular:nr";
        $textmitteilung_a .= "$m_anredern$m_vorname $m_fnamern$m_strasse $m_hausnummerrn$m_plz $m_ortrn$m_vw $m_rnrn$m_emailrnn";
        $textmitteilung_a .= "Mitteilung:rn$m_mitteilungrnnMitgeteilt am: $aktuelles_datum";

        // E-Mail an Seiteninhaber wird gesendet.
        mail($absender, $betreff, $textmitteilung, $absender);
           
        // Bestätigungsmail an Absender
        // Betreff für Mitteilungssendenden
        $bbetreff = "Ihre Kontaktmitteilung";
           
        // Textzusammenstellung für den Absender
        $btextmitteilung_a = "Sehr geehrter $m_anrede $m_fname,rnnIhre Mitteilung:rnn";
        $btextmitteilung_a .= "t$m_anredernt$m_vorname $m_fnamernt$m_strasse $m_hausnummerrnt$m_plz $m_ortrnt$m_vw $m_rntrn";
        $btextmitteilung_a .= "$m_emailrnntMitteilung:rnt$m_mitteilung";
        $btextmitteilung_a .= "rnn ist bei mir eingegangen. Sie erhalten in den nächsten Tagen eine Rückmeldung von mir.";
           
        // Mailbedingungen in From von MIME und HTML
        $header  = "MIME-Version: 1.0rn";
        $header .= "Content-type: text/html; charset=iso-8859-1rn";
        $header .= $absender;
           
        // Senden der Bestätigungsmail an den Formularausfüllenden.
        mail($m_email, $bbetreff, $btextmitteilung_a, $header);
           
        // Nun leite um auf die Empfangsbestätigungs-Seite emailok.php.
        // Wenn du eine andere Datei möchtest, einfach emailok.php durch die gewünschte Datei ersetzen.
        header("Location: http://www.deine_domain.de/emailok.php");
        exit();
    }
}
?>
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Formular</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
	background: #fffbd7;
	margin: 0 0 0 0;
}
.text {
	font-family: verdana, arial, helvetica, sans-serif;
	font-style: normal;
	font-size: 0.8em;
	font-weight: normal;
	color: #333;
}
.error {
	font-family: verdana, arial, helvetica, sans-serif;
	font-style: normal;
	font-size: 0.9em;
	font-weight: normal;
	font-weight: bold;
	color: #CC0000;
}
table {
	margin-left: auto;
	margin-right: auto;
}
td {
	background: #edebd3;
}
-->
</style>
</head>
<body class="text">
<?php
// Bereich für Fehlerausgabe
if(isset($error_a) AND $error_a == 7) { echo '<p align="center" class="error">Ein leeres Formular nützt nichts.</p>'; }
if(isset($error_a) AND $error_a == 6) { echo '<p align="center" class="error">Sie haben keinen Vornamen angegeben.</p>'; }
if(isset($error_a) AND $error_a == 5) { echo '<p align="center" class="error">Sie haben keinen Familiennamen angegeben.</p>'; }
if(isset($error_a) AND $error_a == 4) { echo '<p align="center" class="error">Ohne Mitteilung kein Kontakt.</p>'; }
if(isset($error_a) AND $error_a == 3) { echo '<p align="center" class="error">Ihre E-Mailadresse ist nicht vollständig.</p>'; }
if(isset($error_a) AND $error_a == 2) { echo '<p align="center" class="error">Ihre E-Mailadresse ist nicht vollständig.</p>'; }
if(isset($error_a) AND $error_a == 1) { echo '<p align="center" class="error">Ihre E-Mailadresse ist ungültig.</p>'; }
?>
<form action="http://www.deine domain .de/form.php" method="post">
  <input type="hidden" name="action" value="1" />
  <table width="70%" cellspacing="2" cellpadding="5" border="0">
    <tr>
      <td colspan="2"><p align="center"><b>Kontakt</b></p>
        <p align="right">* = Optional</td>
    </tr>
    <tr>
      <td>Anrede *</td>
      <td><select name="anrede">
          <option value="" <?php if(isset($_POST['anrede']) AND $_POST['anrede'] == "") { echo "selected"; } ?>>optional</option>
          <option value="Frau" <?php if(isset($_POST['anrede']) AND $_POST['anrede'] == "Frau") { echo "selected"; } ?>>Frau</option>
          <option value="Herr" <?php if(isset($_POST['anrede']) AND $_POST['anrede'] == "Herr") { echo "selected"; } ?>>Herr</option>
          <option value="Firma" <?php if(isset($_POST['anrede']) AND $_POST['anrede'] == "Firma") { echo "selected"; } ?>>Firma</option>
        </select>
      </td>
    </tr>
    <tr>
      <td>Vorname</td>
      <td><input type="text" name="vorname" size="40" value="<?php if(isset($_POST['vorname'])) { echo $_POST['vorname']; } ?>" /></td>
    </tr>
    <tr>
      <td>Name</td>
      <td><input type="text" name="fname" size="40" value="<?php if(isset($_POST['fname'])) { echo $_POST['fname']; } ?>" /></td>
    </tr>
    <tr>
      <td>Strasse / Haus.-Nr. *</td>
      <td><input type="text" name="strasse" size="40" maxlength="100" value="<?php if(isset($_POST['strasse'])) { echo $_POST['strasse']; } ?>" />
        <input type="text" name="hausnummer" size="5" maxlength="8" value="<?php if(isset($_POST['hausnummer'])) { echo $_POST['hausnummer']; } ?>" />
      </td>
    </tr>
    <tr>
      <td>PLZ / Wohnort *</td>
      <td><input type="text" name="plz" size="5" maxlength="5" value="<?php if(isset($_POST['plz'])) { echo $_POST['plz']; } ?>" />
        <input type="text" name="ort" size="40" maxlength="100" value="<?php if(isset($_POST['ort'])) { echo $_POST['ort']; } ?>" />
      </td>
    </tr>
    <tr>
      <td>Telefon *</td>
      <td><input type="text" name="vw" size="10" maxlength="5" value="<?php if(isset($_POST['vw'])) { echo $_POST['vw']; } ?>" />
        /
        <input type="text" name="rn" size="10" maxlength="15" value="<?php if(isset($_POST['rn'])) { echo $_POST['rn']; } ?>" />
      </td>
    </tr>
    <tr>
      <td>Ihre E-Mailadresse</td>
      <td><input type="text" name="email" size="30" maxlength="50" value="<?php if(isset($_POST['email'])) { echo $_POST['email']; } ?>" />
      </td>
    </tr>
    <tr>
      <td>Zimmeranzahl *</td>
      <td><select name="zimmeranzahl">
          <option value="" <?php if(isset($_POST['zimmeranzahl']) AND $_POST['zimmeranzahl'] == "") { echo "selected"; } ?>>optional</option>
          <option value="1" <?php if(isset($_POST['zimmeranzahl']) AND $_POST['zimmeranzahl'] == "1") { echo "selected"; } ?>>1</option>
          <option value="2" <?php if(isset($_POST['zimmeranzahl']) AND $_POST['zimmeranzahl'] == "2") { echo "selected"; } ?>>2</option>
          <option value="3" <?php if(isset($_POST['zimmeranzahl']) AND $_POST['zimmeranzahl'] == "3") { echo "selected"; } ?>>3</option>
        </select>
      </td>
    </tr>
    <tr>
      <td>Personenanzahl *</td>
      <td><select name="personen">
          <option value="" <?php if(isset($_POST['personenanzahl']) AND $_POST['personenanzahl'] == "") { echo "selected"; } ?>>optional</option>
          <option value="1" <?php if(isset($_POST['personenanzahl']) AND $_POST['personenanzahl'] == "1") { echo "selected"; } ?>>1</option>
          <option value="2" <?php if(isset($_POST['personenanzahl']) AND $_POST['personenanzahl'] == "2") { echo "selected"; } ?>>2</option>
          <option value="3" <?php if(isset($_POST['personenanzahl']) AND $_POST['personenanzahl'] == "3") { echo "selected"; } ?>>3</option>
          <option value="4" <?php if(isset($_POST['personenanzahl']) AND $_POST['personenanzahl'] == "4") { echo "selected"; } ?>>4</option>
          <option value="5" <?php if(isset($_POST['personenanzahl']) AND $_POST['personenanzahl'] == "5") { echo "selected"; } ?>>5</option>
          <option value="6" <?php if(isset($_POST['personenanzahl']) AND $_POST['personenanzahl'] == "6") { echo "selected"; } ?>>6</option>
        </select>
      </td>
    </tr>
    <tr>
      <td>Mitteilung</td>
      <td><textarea name="mitteilung" maxlength="255" cols="60" rows="10"><?php if(isset($_POST['mitteilung'])) { echo $_POST['mitteilung']; } ?>
</textarea>
      </td>
    </tr>
    <tr>
      <td colspan="2"><p align="center">
          <input type="submit" value="Mittelung senden" />
        </p></td>
    </tr>
  </table>
</form>
</body>
</html>
 
Heey,

hast du schon geprüft ob die Daten wirklich nicht verschickt werden oder wird nur die mail nicht verschickt? Du kannst das pürfen indem du einfach mal alle POST / GET variablen ausgibst.

Und auf mich wirkt das Fehlersystem ein wenig seltsam. Würden Zwei fehler auftreten würde trotzdem nur der eine angezeigt werden.
Aber sons sehe ich da auf die Schnelle keine Fehler

LG Nino

edit: So habs mir nochmal angeguckt:
In Zeile 40 Überprüfst du mit preg_match die mail und wenn es richtig ist dann ist $m_email = $_POST['email'];. So sollte es auf jeden fall sein nur leider steht nach der if abfrage nichts in $m_email und desshalb fängt er auch nich an die Mail zu schicken.
Du solltest dir den Regulären ausduch nocheinmal angucken.
 
Zuletzt bearbeitet:
Zurück