如何使用PHP中的html邮件发送带有特殊字符的联系表单?

时间:2012-12-31 11:14:20

标签: php html

我有NameCompanyNameEnquiry的联系表单。当我在Enquiry字段中提交带有html实体的表单时(例如<a href="link-to-page">Link</a><script>alert('Hello World!');</script>)。它显示在邮件中,例如<a href=\"link-to-page\">Link</a><script>alert(\'Hello World!\');</script>。这两个报价都被转义。如何删除那些逃逸的斜杠?

我正在附上以下代码段。

//I have used htmlspecialchars() to get the html entities in mail as it is.

$senderName  =  htmlspecialchars($_REQUEST['contactName'],ENT_QUOTES);
$senderCompany  = htmlspecialchars($_REQUEST['contactCompany'],ENT_QUOTES);
$senderEnquiry  = htmlspecialchars($_REQUEST['contactEnquiry'],ENT_QUOTES);

1 个答案:

答案 0 :(得分:0)

您应该将标题的内容类型设置为text / html,或者请在发布时检查该值,我认为这是因为双引号和单引号问题。 例如,请参阅以下代码: -

$new = htmlspecialchars("<script>alert(\'Hello World!\');</script>", ENT_QUOTES);
echo $new; // This will print output as <script>alert(\'Hello World!\');</script>

但是如果您将使用双引号更改代码,请参阅以下内容: -

$new = htmlspecialchars("<script>alert(\"Hello World!\");</script>", ENT_QUOTES);
echo $new; // This will print output as <script>alert("Hello World!");</script>

因此,请检查发布时是否存在单引号和双引号问题

通过表格

的价值