【发布时间】:2011-08-16 22:07:22
【问题描述】:
让我们想象一个表单编辑器,它可以编辑可用值。如果数据包含" 字符(双引号),它会“破坏”HTML 代码。我的意思是,让我们检查一下代码:所以我生成了 HTML:
onclick="var a = prompt('New value: ', '<?php echo addslashes($rec[$i]); ?>'); if (a != null)....
结果
onclick="var a = prompt('New value: ', 'aaaa\"aaa'); if (a != null) { v....
这使得 JS 无法工作,从而破坏了代码。使用单个 qoute ' 它可以正常工作。 mysql real escape 也是如此。
如何转义任何字符串以免破坏 javascript?
json_encode 看起来不错,但我一定是做错了什么,它仍然很糟糕:这是 Firefox 看到它的屏幕截图 - 它插入了一个“糟糕的”双引号!该值只是一个简单的数字:
http://img402.imageshack.us/img402/5577/aaaahf.gif
我确实用过:
('Ird be az új nevet:', <?php echo json_encode($rec['NAME']); ?>); if (a) {
【问题讨论】:
-
不完全是重复的,当它在 HTML 属性中使用时,它需要额外的转义步骤
标签: php javascript escaping addslashes