簡體   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