所以我正在尝试制作一个没有任何错误的网站,但是我不断收到此错误:
第 31 行第 107 列 - 错误:值显示错误.php? url=A 指南 元素 A 上属性 HRF 的项目管理知识体系: 查询中的非法字符:不是 URL 代码点。
这是它突出显示的代码中给出错误的部分:
</tr><tr><td><a href='display.php? click=A GUIDE TO THE PROJECT MANAGEMENT BODY OF KNOWLEDGE'>
末尾符号的">"正在突出显示,并且对每一行重复此操作。
这是导致错误的源代码行:
$book = $row['bookTitle'];
echo "<td><a href='display.php? url=".$book."'>'n" .$book."</a></td>";
关于如何阻止这种情况的任何想法?任何帮助都值得赞赏:)
a 标签在查询字符串参数之前有一个空格:
<a href='display.php? url=".$book."'>
这应该是:
<a href='display.php?url=".$book."'>
我不完全确定错误的确切原因,但您正在将原始随机输入注入 URL 和 HTML 文档中。您需要正确转义它们:
- 对于网址:rawurlencode()
- 对于 HTML: htmlspecialchars()
请注意,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']
)。