Zur Navigation

PHP Kontaktforumlar erweitern

1 Alex Jan (Gast)

Hallo Jörg,
liebe Foren-Gemeinde,

das WWW ist voller Wissen, voller nützlicher Dinge – wie zum Beispiel ein PHP-Script. Ein solches verwende ich nun und möchte es erweitern. Leider fehlt mir dazu das Hintergrundwissen so das ich nun hoffe hier HIlfe zu finden.

Das Formular soll so erweitert werden, dass die Person welche das Forumlar ausfüllt eine Bestätigungs-Mail erhält.

Nachfolgend der Code:

 <?
$Empfaenger = "xxx@xxx.de";

if($_POST['Send']) {
if(empty($_POST['Hersteller']) || empty($_POST['Marke']) || empty($_POST['Name']) || empty($_POST['Unternehmen']) || empty($_POST['Position']) || empty($_POST['Anschrift']) || empty($_POST['Land']) || empty($_POST['Telefonnummer']) || empty($_POST['E-Mail'])) {
echo "<br /><br /><div id='notification'><center><h2>Bitte f&uuml;llen Sie alle mit einem * markierten Felder aus!</h2></center></div><br /><br />";
}
else {
$Mailnachricht = "Folgendes Unternehmen... etc...: \n\n";
while(list($Formularfeld, $Wert)=each($_POST)) {
if($Formularfeld!="Send") {
$Mailnachricht .= $Formularfeld.": ".$Wert."\n";
}
}
$Mailnachricht .= "\nDatum/Zeit: ";
$Mailnachricht .= date("d.m.Y H:i:s");
$Mailbetreff = "Betreff: ";
mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_POST['E-Mail']);
echo "<br /><br /><div id='notification'><center><h2>Vielen Dank! Ihre Anfrage wird schnellstm&ouml;glich bearbeitet.</h2></center></div><br /><br />";
}
}		       
?> 

Ich hoffe hier Hilfe zu finden.

Liebe Grüße und vielen Dank im Voraus,
Alex

12.03.2013 12:48

2 Jörg Kruse

Vorweg: dein Formular enthält eine ernste Sicherheitslücke. Das $_POST['E-Mail'] sollte nicht ungefiltert in mail() verwendet werden:

mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_POST['E-Mail']);

So kann es nämlich zum automatisierten Spammen missbraucht werrden. Zu den Hintergründen:

https://de.wikipedia.org/wiki/E-Mail-Injection

Du solltest vorher zumindest die Umbrüche ausfiltern, z.B.:

if (strpos($_POST['E-Mail'], "\n") !== false || strpos($_POST['E-Mail'], "\r") !== false) {
    die('Fehler!');
}
mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_POST['E-Mail']);

Die Benachrichtigungsmail kannst du ebenso mit mail() versenden - zum Gebrauch siehe:

http://php.net/manual/de/function.mail.php

12.03.2013 15:04

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]