繁体   English   中英

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

[英]How can send a contact form with special characters in it, using html mail in php?

我有一个联系表,其中包含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> <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);

您应该将标题的内容类型设置为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>

所以请在发布时检查单引号和双引号是否存在问题

通过表格获得价值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM