Ошибка 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 документ. Вы должны избежать их правильно:
- Для URL: rawurlencode ()
- Для HTML: http://php.net/htmlspecialchars
Обратите внимание, что значение 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."'>