Ошибка PHP/HTML - недопустимый символ

Поэтому я пытаюсь сделать сайт без каких-либо ошибок, однако я продолжаю получать эту ошибку:

строка 31, столбец 107 - ошибка: неверное значение display.php? url= РУКОВОДСТВО ПО ОРГАНУ УПРАВЛЕНИЯ ПРОЕКТАМИ ЗНАНИЯ для атрибута href для элемента a: недопустимый символ в запросе: не точка кода 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>";

Есть идеи как это остановить? Любая помощь приветствуется:)

2 ответа

Решение

Я не совсем уверен в точной причине ошибки, но вы вводите необработанный случайный ввод как в URL, так и в HTML документ. Вы должны избежать их правильно:

Обратите внимание, что значение href Атрибут содержит URL, который внедряется в HTML, поэтому вам нужны оба экранирующих механизма:

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

Я также исправил то, что я предполагаю, это небольшая опечатка (вы, вероятно, ожидаете $_GET['url'] скорее, чем $_GET[' url']).

Ваш тег имеет пробел перед параметром строки запроса:

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

это должно быть:

<a href='display.php?url=".$book."'>
Другие вопросы по тегам