我正在用PHP做一个项目! 问题是数组打印不正确。 实际上我试图使用PHP从mysql检索文本数据。 我能够检索数据,但在文档中打印时,它不是我想要的打印!!
echo "<td><p onclick=alert('".$arr[$t]."'); ><u>VIEW</u></p></td>";
$ arr [$ t]是我从数据库中检索的文本数据。
它应该像这样打印(假设$ arr [$ t]有数据“这是段落”)
但实际输出是这样的..
在CHROME中输出
<td><p onclick="alert('this" is a paragraph'); ><u>VIEW</u></p></td>
FIREFOX中的输出
<td><p paragraph');="" a="" is="" onclick="alert('this" ><u>VIEW</u></p></td>
我不知道为什么会这样。
请帮我解决这个问题。
提前谢谢:)
答案 0 :(得分:1)
从Chrome输出中突出显示的语法将其删除 - 您的双引号内嵌有双引号,这是无效的HTML。
你应该在渲染之前使用htmlspecialchars(http://au2.php.net/manual/en/function.htmlspecialchars.php)之类的东西来转义所有输出。
此外,您应该将onclick处理程序包装在引号中 - 例如。 onlick="alert('stuff stuff more stuff')"
或它无法正确解析。