【发布时间】:2011-04-18 22:48:34
【问题描述】:
当我对 PHP 使用 mail() 函数时,我无法弄清楚字符转义背后的逻辑。我使用的是 PHP 5.2,magic_quotes_qpc 为 ON,runtime/sybase 为 OFF。这就是问题所在。
-
A 有一个接受文本输入的表单,我使用
mysqli_real_escape转义特殊字符,以便在 SQL 语句中使用,如下所示:$text = mysqli_real_escape_string($dbc, $_GET['text']); 如果我输入以下评论“我不会吃那个!”进入表格,我在数据库中看到以下内容 - “我不会吃那个!”,这是我所期望的。如果我添加回车/换行,我在 phpMyAdmin 的数据库字段中看到的只是回车和换行,没有特殊字符(即没有“\r\n”或类似的东西)。
-
当我使用
mail函数发送消息(即mail($to, $subject, $text, $headers))时,我在电子邮件正文中收到了类似这样的奇怪信息:I wouldn\\\'t eat that\r\nI couldn\\\'t eat that
归根结底,我只是希望电子邮件输出的格式与表单输入完全相同,换句话说:
I wouldn't eat that
I couldn't eat that
我不确定为什么撇号前有三次转义以及为什么我的电子邮件中会出现 \r\n。
【问题讨论】:
标签: php email escaping mysql-real-escape-string