因爲我的電子郵件形式,我真的很惱火。我有一個表單,訪問者提交他們的問題。提交信息後等將首先存儲在數據庫中。當存儲成功時,電子郵件將發送到我的電子郵件地址。替換換行符不起作用
很好,除了消息部分。它繼續顯示\ 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