Formmailer / E-Mail versand
daniel74
- php
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ße / Nr.:</span></td>
<td><span class="Stil2">
<input name="Straße" type="text" id="Straß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>
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