mysql_real_escape_string和jquery

时间:2012-07-09 14:03:46

标签: php jquery

假设我有一个列产品名称,它的值为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=""(用双引号括起来)但是如果值包含双引号怎么办?所以问题仍然存在。 任何帮助表示赞赏。

谢谢!

2 个答案:

答案 0 :(得分:4)

您不得将mysql_real_escape_string用于HTML输出。请改用相应的htmlspecialchars

答案 1 :(得分:0)

在HTML中,引号前的反斜杠并不意味着报价被转义。 HTML中的转义'&#039;。这就是您为输出目标使用适当的转义方法的原因。转义SQL时mysql_real_escape_string是合适的,转义为HTML时htmlspecialchars是合适的。