Hallo,
ich stricke hier an einem Kontaktformular. Leider kommt die Bestätigungsemail an den Interessenten kommt nicht beim Interessenten an. Auch den Inhalt der Kontaktanfrage möchte ich an den Interessenten schicken. Das heißt: Die Email wird nicht in das From Feld übertragen. Der Name, die Email und der Inhalt des Nachrichtenfeldes wird nicht in die Email übertragen.
Habe ich das script professionell geschrieben? Ist die Validierung der Emailadresse vernünftig?
Hier habe ich einmmal meinen Codeschnipsel angehängt.
Vielen Dank für die Hilfe
Joerg
ich stricke hier an einem Kontaktformular. Leider kommt die Bestätigungsemail an den Interessenten kommt nicht beim Interessenten an. Auch den Inhalt der Kontaktanfrage möchte ich an den Interessenten schicken. Das heißt: Die Email wird nicht in das From Feld übertragen. Der Name, die Email und der Inhalt des Nachrichtenfeldes wird nicht in die Email übertragen.
Habe ich das script professionell geschrieben? Ist die Validierung der Emailadresse vernünftig?
Hier habe ich einmmal meinen Codeschnipsel angehängt.
Vielen Dank für die Hilfe
Joerg
PHP-Code:
<?php
define ('MAILTO', "web@domaine.com"); // Empfänger hier eintragen
define ('MAILFROM', "Kontaktformular"); // ggfls. Absender hier eintragen
define ('CHARSET', "ISO-8859-15"); // Zeichenkodierung ggfls. anpassen
$Pflichtfelder = array('Anrede', 'eMail', 'Nachricht'); // ggfls. weitere Pflichtfelder angeben
 
$AddHeader = 'Content-Type: text/plain; charset='.CHARSET;
if(MAILFROM) $AddHeader .= chr(13).chr(10).'From: '.MAILFROM;
if($Formular_abgeschickt = !empty($_POST)) {
$Formular_leer = true; set_magic_quotes_runtime(0);
$_POST = array_map('Formular_Daten', $_POST);
}
function Formular_Daten($val) {
global $Formular_leer;
if(is_array($val)) return array_map('Formular_Daten', $val);
if(get_magic_quotes_gpc()) $val = stripslashes($val);
if($val = trim($val)) $Formular_leer = false;
return $val;
}
function Formular_Pflichtfelder() {
global $Pflichtfelder;
$Fehler = '';
foreach ($Pflichtfelder as $Feld) {
$key = str_replace(' ','_',$Feld);
if(!(isset($_POST[$key]) && trim($_POST[$key])!=='')) {
if($Fehler) $Fehler .= '<br />';
$Fehler .= 'Pflichtfeld "' . $Feld . '" nicht ausgefüllt.';
}
}
return $Fehler;
}
function Formular_neu($log='.htPOSTdata.txt') {
if(file_exists($log) && is_readable($log)
&& file_get_contents($log) == print_r($_POST,true))
return false;
if($handle=@fopen($log, 'w')) {
fwrite($handle, print_r($_POST,true)); fclose($handle);
}
return true;
}
function Formular_Check() {
global $Formular_leer;
if($Formular_leer) $Fehler = 'Keine Daten eingetragen.';
elseif(!$Fehler = Formular_Pflichtfelder()) {
if(!checkEmail($_POST['eMail'])) $Fehler = 'E-Mail fehlerhaft.';
elseif(!Formular_neu()) $Fehler = 'Nachricht war bereits verschickt.';
}
return $Fehler;
}
function Formular_Eingabe($Feldname, $def='') {
if(isset($_POST[$Feldname]) && $_POST[$Feldname]!=='')
echo htmlspecialchars($_POST[$Feldname]);
else echo $def;
}
function checkEmail($adr) {
$regEx = '^([^\s@,:"<>]+)@([^\s@,:"<>]+\.[^\s@,:"<>.\d]{2,}|(\d{1,3}\.){3}\d{1,3})$';
return (preg_match("/$regEx/",$adr,$part)) ? $part : false;
}
// Variablen für Datum und Uhrzeit
$name_tag[0] = "Sonntag";
$name_tag[1] = "Montag";
$name_tag[2] = "Dienstag";
$name_tag[3] = "Mittwoch";
$name_tag[4] = "Donnerstag";
$name_tag[5] = "Freitag";
$name_tag[6] = "Samstag";
$num_tag = date( "w");
$day = $name_tag[$num_tag];
$year = date("Y");
$day_num = date("d");
$month = date("m");
$time = (date("H:i"));
$email = $eMail; ?????
$subject01 = "Kontaktformular der Domaine"; //Der Betreff der Email
// Der Body für die Mail
$body01 = "Nachricht gesendet am $day, $day_num.$month.$year um $time:
Name: = $Name
Email: = $eMail
Nachricht = $Nachricht
$text
Ihre Mail wird so schnell wie möglich bearbeitet.
Bei Fragen schreiben Sie an: mailto:info@domaine.com";
mail($eMail, $subject01, $body01, "From:$eMail"); ?????????
// Funktionen für die Eingabefelder
function Anrede($anrede) {
$anrede = (radiobutton.selected) ? "Herr" : "Frau";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Kontaktformular</title>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>" />
</head>
<body>
<h1>Kontakt</h1>
<?php
if($Formular_abgeschickt) {
if($Formular_Fehler = Formular_Check())
echo '<p class="Meldung" id="Fehler">',$Formular_Fehler,'</p>';
elseif(@mail(MAILTO, "Nachricht", print_r($_POST,true), $AddHeader))
echo '<p class="Meldung" id="OK">Nachricht verschickt.</p>';
else echo '<p class="Meldung" id="Fehler">Server-Fehler !</p>';
}
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post"
enctype="multipart/form-data" accept-charset="<?php echo CHARSET; ?>">
<fieldset><legend>Kontaktformular</legend>
<p>
<input type="radio" name="Anrede" value="Herr" /> Herr
<input type="radio" name="Anrede" value="Frau" /> Frau
</p>
<p>
<label for="Name">Ihr Name:</label>
<input name="Name" id="Name" size="66"
value="<?php Formular_Eingabe('Name'); ?>" />
</p>
<p>
<label for="eMail">Ihre E-Mail-Adresse:</label>
<input name="eMail" id="eMail" size="66"
value="<?php Formular_Eingabe('eMail'); ?>" />
</p>
<p>
<label for="Nachricht">Nachricht:</label>
<textarea name="Nachricht" id="Nachricht" rows="5" cols="50"><?php
Formular_Eingabe('Nachricht'); ?></textarea>
</p>
<p><input type="submit" value="abschicken" /></p>
</fieldset>
</form>
</body>
</html>
Kommentar