【发布时间】:2018-08-03 18:19:54
【问题描述】:
我知道这是一个简单的问题,但很难找到简单的解决方案。
我在我的 PHP 站点上有一个表单,它接收用户消息,然后向我的客户发送一封包含该消息的电子邮件。我希望发送给我的客户的消息易于阅读,没有转义字符 \r 、 \n 、 \" 等。
例如,邮件当前进入电子邮件的方式为:
test\'s\r\nnew line \r\n\"quote\"
我希望它是什么:
test's
new line
"quote"
当前代码为:
if(isset($_POST['submit']) && !empty($_POST['email'])){
//Process form
$name = $_POST['name'];
$name = mysql_prep($name);
$email = $_POST['email'];
$email = mysql_prep($email);
$message = $_POST['message'];
$message = mysql_prep($message);
$emailto = "client_email1@gmail.com,client_email2@gmail.com";
$subject = "Message from '$name'";
// the message
$message = "<html><body>
<h3>Title</h3>
From: $name<br>
Email: $email<br><br>
Message:<br>
$message<br><br>
</body></html>";
//headers make the mail() work
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
mail($emailto, $subject, $message, $headers);
【问题讨论】:
-
发现了错误,
$message = mysql_prep($message);刚刚被移动到mail()函数之后,但是现在用户输入的换行符没有出现在消息中。知道如何在发送给客户的电子邮件中显示换行符吗? -
mysql_prep()是做什么的? -
"发现错误,$message = mysql_prep($message); 只是在 mail() 函数之后移动了" - 那应该是原来的一部分帖子和您写的内容也应该添加到那里并作为附加编辑。
-
对我来说似乎是可能的 SQL 注入,并且似乎与数据库相关。有几种方法可以不让这些反斜杠成为消息的一部分。
-
你来这里寻求帮助,我们正在努力提供帮助,但你可能离开并试图自己解决这个问题,我们不知道这是否是这里发生的事情。我要求更新问题(在此评论之前 10 分钟),但我没有看到一个,也没有对我的一些 cmets 做出回应。我现在必须继续前进,因为我似乎一文不值;祝你好运,真的。