由于我的电子邮件表格,我真的很生气。我有一个访问者提交问题的表单。提交消息等后,将首先存储在数据库中。当存储成功时,将向我的电子邮件地址发送一封电子邮件。
除了消息部分之外,这很顺利。它一直显示\ r \ n(这些新行也存储在db中),而我试图str_replaced()\ r \ n与
甚至ntblr()它。什么都行不通。我到底做错了什么?
获取邮件内容:
$message = safe($mysqli,$_POST['message']);
safe()函数是:mysqli_real_escape_string
电子邮件代码:
if (!$stmt) {
echo "sendingEmailError";
} else {
//Send email
$to = "<my@email.com>";
$subject = "Website message from ".$account."";
$body = "
<div> ".nl2br($message)." </div>";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: New email from '.$account.' <'.$email.'>' . "\r\n";
mail($to, $subject, $body, $headers);
echo "sendingEmailSuccess";
}
\r\n
应替换为<br />
答案 0 :(得分:0)
你的mysqli_real_escape_string改变了你的换行符,通常是通过转义它们。之后你的nl2br将不再打任何东西。
尝试使用原始邮件并在其上应用nl2br。
答案 1 :(得分:-1)
你试过RegEX吗?
$message = preg_replace("/(\\n|\\r)+/ui", '<br />', $message);
另外,检查mysql表中的数据,并将其转义为 stripslashes 。