-3

假设我有一个列产品名称并且它具有价值Shoe's。当我从 db 中选择该值并使用mysql_real_escape_string并将其放置在 html 隐藏输入中时,它变为<input type='hidden' value='Shoe\'s' id='product_name'>

当我这样做$('#product_name').val()时,它只返回Shoe\截断s值的其余部分。jQuery 假设转义单引号作为 attr 值的结束引号。

解决方案是使用value=""(用双引号括起来)但是如果值包含双引号怎么办?所以问题依然存在。任何帮助表示赞赏。

谢谢!

4

2 回答 2

4

不得mysql_real_escape_string用于 HTML 输出。改用适当的htmlspecialchars

于 2012-07-09T14:06:26.620 回答
0

In HTML, a backslash before a quote does not mean that the quote is escaped. An escaped ' in HTML is &#039;. That's why you use the appropriate escaping method for your output target. mysql_real_escape_string is appropriate when escaping for SQL, htmlspecialchars is appropriate when escaping for HTML.

于 2012-07-09T14:09:03.710 回答