daniel74: Formmailer / E-Mail versand

Hallo,

ich habe ein Problem, der Mailversand funktioniert aber die Daten aus dem Formularfeldern werden nicht in die E-Mail mit übertragen.
Wie kann ich das Problem lösen?

mfg

Daniel

<html>
<head>
<title>Kontakt</title>
<style type="text/css">
<!--
.Stil1 {
 font-family: Geneva, Arial, Helvetica, sans-serif;
 font-size: 14px; font-weight: bold;
}
.Stil2 {
 font-family: Geneva, Arial, Helvetica, sans-serif;
 font-size: 14px;
}
-->
</style>
</head>
<body>
<center>
<?php
error_reporting(E_ALL);
setlocale(LC_ALL, 'de_DE');
$code = chr((date("y") + 7) % 10 + date("m") + 68 + (date("m") % 2) * 32) . chr((date("d") + (date("d") %2)) / 2 + 66 + (37 * (date("d") %2)));
if(isset($_POST['los'])) {
if(!isset($_POST['code']) || $_POST['code'] != $code) die("<font size="2" face="Geneva, Arial, Helvetica, sans-serif">Mailcode fehlt!</font>");
$pruefung = array(
'Email' => '/^ [\w.!#%&\*/=?^`{|}~+-]{1,64} @
[[:alnum:].-]{1,255} . [a-z]{2,6} $/xi',
'Betreff' => '/[1]{3,}$/',
'Text' => '/[2]{10,}$/'
);
foreach($_POST as $parameter => $wert) {
if(isset($pruefung[$parameter])) {
if(!preg_match($pruefung[$parameter], $wert)) die("<font size="2" face="Geneva, Arial, Helvetica, sans-serif">Bitte überprüfen Sie Ihre Eingaben (Email, Betreff, Text).</font>");
} else {
unset($_POST[$parameter]);
}
}
if(!getmxrr(substr(strstr($_POST['Email'], '@'), 1), $mxhosts)) die("<font size="2" face="Geneva, Arial, Helvetica, sans-serif">Ihre Emailadresse hat keine gültige Domain!</font>");
if(mail('xxx@xxx.de', $_POST['Betreff'], $_POST['Text'], "From:" . $_POST['Email'])) {
echo "<p><font size="2" face="Geneva, Arial, Helvetica, sans-serif">Ihre Nachricht an xxx@xxx.de wurde versandt!</font></p>";
} else {
echo "<p><font size="2" face="Geneva, Arial, Helvetica, sans-serif">Ihre Nachricht konnte nicht versandt werden!</font></p>";
}
} else {
?>
<span class="Stil1">Kontakt</span>
<form method="post" action="">
  <table width="0%"  border="0">
    <tr>
      <td width="110"><span class="Stil2">Anrede:</span></td>
      <td><select name="Anrede" id="Anrede" style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size:10pt">
        <option value="Frau">Frau</option>
        <option value="Herr">Herr</option>
        </select></td>
    </tr>
    <tr>
      <td width="110"><span class="Stil2">Name:</span></td>
      <td><span class="Stil2">
        <input name="Name" type="text" id="Name" style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size:10pt">
      </span></td>
    </tr>
    <tr>
      <td width="110"><span class="Stil2">Stra&szlig;e / Nr.:</span></td>
      <td><span class="Stil2">
        <input name="Stra&szlig;e" type="text" id="Stra&szlig;e" style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size:10pt">
      </span></td>
    </tr>
    <tr>
      <td width="110"><span class="Stil2">PLZ / Ort:</span></td>
      <td><span class="Stil2">
        <input name="Ort" type="text" id="Ort" style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size:10pt">
      </span></td>
    </tr>
    <tr>
      <td width="110"><span class="Stil2">E-Mail:</span></td>
      <td><span class="Stil2">
        <input name="Email" type="text" id="Email" style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size:10pt">
      </span></td>
    </tr>
    <tr>
      <td width="110"><span class="Stil2">Tel:</span></td>
      <td><span class="Stil2">
        <input name="Tel" type="text" id="Tel" style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size:10pt">
      </span></td>
    </tr>
    <tr>
      <td width="110"><span class="Stil2">Betreff:</span></td>
      <td><span class="Stil2">
        <input name="Betreff" type="text" id="Betreff" style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size:10pt">
      </span></td>
    </tr>
    <tr>
      <td width="110" align="left" valign="top"><span class="Stil2">Text:</span></td>
      <td><span class="Stil2">
        <textarea name="Text" cols="33" rows="3" id="Text" style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size:10pt"></textarea>
      </span></td>
    </tr>
    <tr>
      <td width="110"><span class="Stil2">
      </span></td>
      <td><span class="Stil2">
    <input type="hidden" id="code" name="code" value="<?php echo($code); ?>"/>
        <input name="los" type="submit" id="los" style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size:10pt" value="Senden"/>
      </span></td>
    </tr>
  </table>
</form>
<?php
}
?>
</center>
</body>
</html>


  1. [:print:] ↩︎

  2. [:print:][:space:] ↩︎

  1. foreach($_POST as $parameter => $wert) {
    if(isset($pruefung[$parameter])) {
    if(!preg_match($pruefung[$parameter], $wert)) die("<font size="2" face="Geneva, Arial, Helvetica, sans-serif">Bitte überprüfen Sie Ihre Eingaben (Email, Betreff, Text).</font>");
    } else {
    unset($_POST[$parameter]);

    Mit diesen Codezeilen werden alle per POST übermittelten Variablen außer 'Email', 'Betreff' und 'Text' (da diese als Schlüssel im Array '$pruefung' stehen) ungesetzt. D.h. dass auch die später benötigten Variablen 'Anrede','Name','Straße','Ort' und 'Tel' ungesetzt werden!!

    if(mail('xxx@xxx.de', $_POST['Betreff'], $_POST['Text'], "From:" . $_POST['Email']))

    Wie sollen die Daten aus dem Formular auch in die Email übertragen werden, wenn man der Function mail() diese nicht übergibt?
    Alle beim obigen Beispiel nicht berücksichtigten Formular-Variablen solltest du am besten mit dem String-Verknüpfungsoperator '.' zum zu sendenden Text dazupacken.

    mfg
    Rato