因为我的电子邮件形式,我真的很恼火。我有一个表单,访问者提交他们的问题。提交信息后等将首先存储在数据库中。当存储成功时,电子邮件将发送到我的电子邮件地址。替换换行符不起作用
很好,除了消息部分。它继续显示\ r \ n(这些换行符也存储在数据库中),而我试图str_replaced()与\ r \ n与
甚至ntblr()它。什么都没有我做错了什么?
获取消息的内容:mysqli_real_escape_string
电子邮件代码:
if (!$stmt) {
echo "sendingEmailError";
} else {
//Send email
$to = "<[email protected]>";
$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
应替换的安全()函数
$message = safe($mysqli,$_POST['message']);
<br />
你是否确定**你的文本包含换行符和回车符,或者这些字符是否被破坏,现在是'''''','n','''''和'r'文字,例如作为回车符/换行符的'\ r \ n'为2个字节,'\ r \ n'为文字字符反斜杠,'r'和'n'为4个字节。无论如何,你不应该建立你自己的哑剧电子邮件。使用PHPMailer或Swiftmailer,这两者都可以使发送的html电子邮件变得微不足道。 –
您可以使用PHP_EOL而不是\ r \ n – user986959
在这种情况下PHP_EOL是错误的,因为它可能是操作系统特定的,而'\ r \ n'在这里有一个独立的操作系统。 – ToBe