Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/HTML错误-非法字符_Php_Html_Validation_Illegal Characters - Fatal编程技术网

PHP/HTML错误-非法字符

PHP/HTML错误-非法字符,php,html,validation,illegal-characters,Php,Html,Validation,Illegal Characters,因此,我正在尝试创建一个没有任何错误的网站,但我不断遇到以下错误: 第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'>

因此,我正在尝试创建一个没有任何错误的网站,但我不断遇到以下错误:

第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'>
$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."'>

您的a标记在查询字符串参数之前有一个空格:

<a href='display.php? url=".$book."'>

这应该是:

<a href='display.php?url=".$book."'>

我不完全确定错误的确切原因,但您正在将原始随机输入注入URL和HTML文档。您需要正确地转义它们:

  • 对于URL:
  • 对于HTML:
请注意,
href
属性的值包含一个注入HTML的URL,因此您需要两种转义机制:

$book = $row['bookTitle'];
echo "<td><a href='display.php?url=" . htmlspecialchars(rawurlencode($book)) . "'>\n" .
    htmlspecialchars($book) . "</a></td>";
$book=$row['bookstitle'];
回声“;

我还修复了我假设的一个小错误(您可能希望
$\u GET['url']
而不是
$\u GET['url']
)。

我不完全确定错误的确切原因,但您正在向url和HTML文档中注入原始随机输入。您需要正确地转义它们:

  • 对于URL:
  • 对于HTML:
请注意,
href
属性的值包含一个注入HTML的URL,因此您需要两种转义机制:

$book = $row['bookTitle'];
echo "<td><a href='display.php?url=" . htmlspecialchars(rawurlencode($book)) . "'>\n" .
    htmlspecialchars($book) . "</a></td>";
$book=$row['bookstitle'];
回声“;

我还修复了我假设的一点输入错误(您可能希望
$\u GET['url']
而不是
$\u GET['url']
)。

echo'';
是实际生成的HTML或已呈现的内容(如浏览器的DOM窗格)?这就是我写的代码。如果你问的是这个问题的话?你写的HTML?它是由PHP生成的,不是吗?
echo';
是实际生成的HTML还是已经呈现的东西(比如你浏览器的DOM窗格)?这就是我写的代码。如果你问的是这个问题的话?你写的HTML?它是由PHP生成的,不是吗?谢谢,刚刚尝试了一下,但我还是遇到了同样的错误,说我使用了非法字符“>”,试着用str_replace(“,-”,$book)删除查询字符串中的所有空格代替$book-这可能会让人困惑Hanks,只是尝试了一下,但我仍然得到了相同的错误,我使用了一个非法字符“>”,尝试用str_replace(“,”,$book)代替$book删除查询字符串中的所有空格-这可能会让人困惑