2012-04-22 69 views
0

我有一個隱藏的輸入,需要文章名稱。標題中標有「&」。AJAX問題涉及帶字符串的符號。

<input name="art" type="hidden" id="art" value="<?php echo $rew['art']; ?>"/> 

當我提交表單時,$ _POST沒有註冊完整的文章標題。它只會上升到&所在的位置,剩下的就是空白。

我想要這個:「這是&是。」

但我得到:「這是」。

我該如何做到這一點,以便當我提交表單時,我會得到「&」符號和其餘上下文。

我也在數據庫中搜索。我的問題,現在是後「&」

回答

2

你需要逃出通過htmlspecialchars功能HTML實體獲得冠軍的其餘部分:

<input name="art" type="hidden" id="art" value="<?php echo htmlspecialchars($rew['art']); ?>"/> 

基於在下面的意見的討論,你還需要轉義爲Ajax請求生成的URL中的&符號。您可以在JavaScript與encodeURIComponent功能做到這一點:

var dataString = '&topic' + encodeURIComponent(topic); 
+0

記住要指定字符編碼。以下是關於該主題的一些解讀:http://blog.astrumfutura.com/2012/03/a-hitchhikers-guide-to-cross-site-scripting-xss-in-php-part-1-how-not-to -use-htmlspecialchars-for-output-escaping/ – 2012-04-22 16:46:09

+0

我試過了。它不會工作。因爲即使它的格式爲&,它仍會以&形式顯示我的表單。該表單不需要註冊該符號。這是可能的,因爲它是一個Ajax形式? – Brian 2012-04-22 16:47:26

+0

這很奇怪。當你用'htmlspecialchars'提交這個表單時,你可以發佈'print_r($ _ POST)'的輸出嗎? – Brandan 2012-04-22 16:52:12

0

,可隨時更換&&amp;