所以我试图建立一个没有任何错误的网站,但是我不断收到这个错误:
第31行第107栏 - 错误:错误值display.php? url =指南 项目管理知识体系对元素a的属性href: 查询中的非法字符:不是URL代码点。
这是代码的一部分,突出显示错误:
</tr><tr><td><a href='display.php? click=A GUIDE TO THE PROJECT MANAGEMENT BODY OF KNOWLEDGE'>
&#39;&gt;&#39;正在突出显示结尾处的符号,并且每行都会重复此操作。
这是导致错误的源代码行:
$book = $row['bookTitle'];
echo "<td><a href='display.php? url=".$book."'>\n" .$book."</a></td>";
如何阻止这种想法?任何帮助表示赞赏:)
答案 0 :(得分:3)
您的标记在查询字符串参数前面有一个空格:
<a href='display.php? url=".$book."'>
这应该是:
<a href='display.php?url=".$book."'>
答案 1 :(得分:1)
我不完全确定错误的确切原因,但您将原始随机输入注入到URL和HTML文档中。你需要正确地逃脱它们:
请注意,href
属性的值包含一个注入HTML的URL,因此您需要两种转义机制:
$book = $row['bookTitle'];
echo "<td><a href='display.php?url=" . htmlspecialchars(rawurlencode($book)) . "'>\n" .
htmlspecialchars($book) . "</a></td>";
我还修复了我认为有点错字(您可能期望$_GET['url']
而不是$_GET[' url']
)。