我正在使用以下邮件脚本,但问题在于它会转换某些字符。 一个典型的邮件看起来是这样的:PHP邮件脚本换行符和特殊字符
Neue Nachricht von Mustermann, Max ([email protected]):
Hallo Herr Platzhalter, wie soeben besprochen, würden wir gern ein
"Schild" mit der Aufschrift "Aufschrift" bei Ihnen
bestellen. Bitte teilen Sie uns doch mit, wie wir da
verfahren müssen ... Ihnen einen schönen
Urlaub! Familie Mustermann
我猜,这($消息= filter_var($ _ POST [ '消息'],FILTER_SANITIZE_SPECIAL_CHARS))弄乱它。那么,如何改变这种情况而不会使其不安全?还有其他改进,我应该添加到该脚本?
<?php
//Enter your email here
$your_email = "mymail";
//Enter the subject of the mail here
$subject = "Kontakt Webseite";
$name = $_POST['name'];
$email = $_POST['email'];
//Filter HTML characters
$message = filter_var($_POST['message'], FILTER_SANITIZE_SPECIAL_CHARS);
$error = "Fehler: ";
//Default message if unsuccessful and no other reason found
$return_message = $error."Leider hat das Versenden der Nachricht nicht geklappt, bitte schreiben Sie mir direkt an ".$your_email." eine E-Mail";
if(strlen($name) > 0 && strlen($email) > 0 && strlen($message) > 0) {
if(filter_var(filter_var($email, FILTER_VALIDATE_EMAIL), FILTER_SANITIZE_EMAIL)) {
try {
$body = "Neue Nachricht von ".$name." (".$email."):\n".$message;
$header = "From: ".$email;
mail($your_email, $subject, $body, $header);
$return_message = "Die Nachricht wurde erfolgreich versendet, ich melde mich schnellst möglich bei Ihnen";
}
catch(Exception $e) { }
} else {
$return_message = $error."Ihre E-Mail Adresse scheint ungültig zu sein.";
}
} else {
$return_message = $error."Ein oder mehrere Felder waren nicht ausgefüllt.";
}
echo $return_message;
?>
它是否真的需要逃避通过邮件发送的字符串? PHP将处理任何问题,它不像你使用它的MySQL查询 – gosukiwi 2012-04-16 17:51:56
我不知道..我几乎没有经验的PHP ..该脚本包含在一个买的模板。我认为这是一些与安全有关的事情,并且不想在没有询问的情况下搞砸东西;) – kannix 2012-04-16 17:55:26