Я получаю эту ошибку "Error: = in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value."
когда я пытаюсь подтвердить свой документ.
Это мой код:
print("<a href=" . $_SERVER["PHP_SELF"] . '?id=' . $student->hentId() . ">" . $student->hentNavn() . "</a><br/>\n");
Вывод HTML выглядит следующим образом:
<a href=/StudentDatabase/StudentRegister.php?id=1>Petter Andersen</a><br/>
Как правильно добавить цитату?
добавить кавычки, экранируя их с помощью \
Вы хотите, чтобы id = 1 был в URL? Я думаю, что это атрибут, который, по его мнению, отсутствует в кавычках
print("<a href=\" . $_SERVER["PHP_SELF"] . '?id=' . $student->hentId() . \">" . $student->hentNavn() . "</a><br/>\n");
Не безопасное использование $_SERVER["PHP_SELF"]
прямо в ссылках. В зависимости от вашего кода, веб-сайт может быть уязвимым для XSS, и нежелательный JavaScript может закончиться только после посещения. page/url/%22%3E%3Cscript%3Ealert('xss')%3C
, То же самое для
/script%3E%3Cfoo%22student id
или же student name
, если эти записи не санированы html
может привести к поломке или быть уязвимым для XSS.
Рекомендуется использовать функции rawurlencode
, urlencode
, htmlspecialchars
санировать созданную ссылку.
<?php
$url = rawurlencode($_SERVER["PHP_SELF"]) . "?id=" . urlencode($student->hentId());
?>
<a href="<?php echo htmlspecialchars($url); ?>">
<?php echo htmlspecialchars($student->hentNavn()); ?>
</a>