htmlspecialchars преобразует <в> - PullRequest
1 голос
/ 24 января 2011

я строю небольшой форум и получил эту проблему, когда я оставляю комментарий на него. Если в нем есть <, то htmlspecialchars преобразует его в &gt;. ссылка на форум (это датский язык, но вы должны иметь возможность использовать его).

1 Ответ

0 голосов
/ 24 января 2011

Если вы хотите разрешить использование специальных символов в комментариях (что, на мой взгляд, является правильным для общего поля, такого как «Комментарии»), то вам следует беспокоиться только о специальных символах, когда содержимое поля записано в некоторый потенциально «опасный» контекст: код SQL, HTML, JavaScript или даже файлы журналов.Каждый из этих контекстов имеет свои собственные опасности, поэтому «цитирование» варьируется от одного к следующему.

Если вы применяете фильтрацию специальных символов для HTML, когда хотите показать комментарии кпользователь, то это преобразование «<» в <code>&gt; именно то, что вы хотите.Когда браузер анализирует текст комментария как часть вашей HTML-страницы, &gt; преобразуется в глиф "<" на экране. </p>

Если вы выполняете преобразование, когда вы читаете комментарий и при его написании вы получите ошибку двойного кодирования: символ "&" в &gt; сам по себе преобразуется в &amp;.Поэтому браузер увидит строку &amp;gt;, которая заставит его отобразить на экране &gt;.

...