[英]How can send a contact form with special characters in it, using html mail in php?
我有一個聯系表,其中包含Name
, CompanyName
和Enquiry
。 當我在“ 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.