htmlspecialchars преобразует <в & gt;
Я строю небольшой форум и получил эту проблему, когда я оставляю комментарий к нему. Который имеет <
внутри него htmlspecialchars преобразует его в >
, ссылка на форум (это датский, но вы должны иметь возможность использовать его).
1 ответ
Если вы хотите разрешить использование специальных символов в комментариях (что, на мой взгляд, является правильным для общего поля, такого как "Комментарии"), то вам следует беспокоиться только о специальных символах, когда содержимое поля записывается в некоторые потенциально "опасный" контекст: код SQL, HTML, JavaScript или даже файлы журналов. Каждый из этих контекстов имеет свои опасности, поэтому "цитирование" варьируется от одного к другому.
Если вы применяете фильтрацию специальных символов для HTML, когда хотите показать комментарии пользователю, то это преобразование "<" в >
это именно то, что вы хотите. Когда браузер анализирует текст комментария как часть вашей HTML-страницы, >
будет преобразован в символ "<" на экране.
Если вы выполните преобразование при чтении комментария и при его написании, вы получите ошибку двойного кодирования: символ "&" в >
само превратится в &
, Поэтому браузер увидит строку &gt;
что заставит его показать >
на экране вместо.