2012-07-09 65 views
-3

假設我有一個列產品名稱,它的值爲Shoe's。 當我拿起那個值從DB和使用mysql_real_escape_string並把它放在HTML隱藏輸入變得<input type='hidden' value='Shoe\'s' id='product_name'>mysql_real_escape_string和jquery

當我做$('#product_name').val()它僅返回Shoe\截斷後,該s或價值的其餘部分。 jQuery假設一個轉義單引號作爲attr值的結束引用。

解決方法是使用value=""(用雙引號括起來),但如果value包含雙引號會怎麼樣?所以問題依然存在。 任何幫助表示讚賞。

謝謝!

+0

爲什麼使用'mysql_real_escape_string'作爲要放入HTML的值? – deceze 2012-07-09 14:06:22

+0

當你在數據庫中保存東西時,你應該使用mysql_real_escape_string,而不是當你獲取它們時..直到你切換到更好的選項,如pdo,因爲手冊頁顯示http://php.net/mysql_real_escape_string – mishu 2012-07-09 14:06:28

+0

首先這是數據庫由我的僱主提供給我,這不是我設置這些東西的方式,這些都是由他來找我的。考慮到在db中存儲值時沒有使用mysql_real_escape_string。現在我該怎麼辦? – 2012-07-09 14:09:20

回答

0

在HTML中,報價前的反斜槓並不意味着報價被轉義。 HTML中的轉義'&#039;。這就是爲什麼你使用適當的轉義方法爲您的輸出目標。當轉義SQL時,mysql_real_escape_string是合適的,當轉義爲HTML時,htmlspecialchars是合適的。