6.6k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von coros Experte (4k Punkte)
Hallo an Alle!

Ich habe im Netz einen Code gefunden, mit dem ein User mir von meiner Homepage aus eine Nachricht zukommen lassen kann. Dieser funktioniert auch super. Nun möchte ich aber noch, dass der User an die Mailadresse, die er in einem Pflichtfeld „Mail“ eingetragen hat, eine Bestätigungsmail mit der Anrede des Namens, den er im Feld „Name“ eingetragen hat und dann mit einem vordefinierten Text zugesandt bekommt. Allerdings fehlen mir hierzu die entsprechenden PHP- Kenntnisse und daher baue ich auf Euch. Kann mir jemand sagen kann, was ich wo noch ergänzen muss, damit obig beschriebenes beim Betätigen des Buttons ausgeführt wird?

Nachfolgend mal der PHP-Code:
<?php
define ('MAILTO', "mail@example.org"); // Empfänger hier eintragen
define ('MAILFROM', "Kontaktformular"); // ggfls. Absender hier eintragen
define ('CHARSET', "ISO-8859-15"); // Zeichenkodierung ggfls. anpassen
$Pflichtfelder = array('Nachricht', 'Mail'); // 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(!Formular_neu()) $Fehler = 'Nachricht war bereits verschickt.';
}
return $Fehler;
}

function Formular_Eingabe($Feldname, $def='') {
if(!empty($_POST[$Feldname])) echo htmlspecialchars($_POST[$Feldname]);
else echo $def;
}
?>
<!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>
<label for="Name">Name:</label>
<input name="Name" id="Name" size="66"
value="<?php Formular_Eingabe('Name'); ?>" />
</p>
<p>
<label for="Mail">Mail:</label>
<input name="Mail" id="Mail" size="66"
value="<?php Formular_Eingabe('Mail'); ?>" />
</p>
<p>
&nbsp;</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>
Ich hoffe auf viel Unterstützung und danke euch schon mal vorab für die Hilfe.

MfG,
Oliver
[sup]Jeder macht was er will, keiner macht was er soll, aber alle machen mit.[/sup]

21 Antworten

0 Punkte
Beantwortet von
Mailinhalt und Mailadresse aus dem Formular ungeprüft zu übernehmen ist natürlich eine Einladung für Spammer & Co ...
...