Когда нужно использовать объекты HTML?

Используя эту функцию PHP mysql_escape_string(), вы можете быстро получить хорошую профилактику.

Например:

SELECT * FROM users WHERE name = '".mysql_escape_string($name_from_html_form)."'

mysql_escape_string - Сбрасывает строку для использования в mysql_query

Для большей профилактики вы можете добавить в конце ...

wHERE 1=1   or  LIMIT 1

Наконец вы получаете:

SELECT * FROM users WHERE name = '".mysql_escape_string($name_from_html_form)."' LIMIT 1
112
задан Matthew 3 March 2019 в 12:00
поделиться

8 ответов

Вы не должны обычно использовать символьную сущность HTML, если Ваш редактор поддерживает Unicode. Объекты могут быть полезными когда:

  • Ваша клавиатура не поддерживает символ, который необходимо ввести. Например, много клавиатур не имеют длинного тире или символа авторского права.
  • Ваш редактор не поддерживает Unicode (очень распространенный несколько лет назад, но вероятно не сегодня).
  • Вы хотите сделать его явным в источнике, что происходит. Например, эти   код более ясен, чем соответствующий пробельный символ.
  • необходимо выйти из специальных символов HTML как <, &, или ".
75
ответ дан Jonathan Leffler 24 November 2019 в 02:50
поделиться

На основе комментариев я получил, я изучил это немного далее. Кажется, что в настоящее время лучшая практика должна воздержаться от объектов HTML использования и использовать фактический символ UTF-8 вместо этого . Перечисленные причины следующие:

  1. кодировки UTF-8 легче считать и отредактировать для тех, кто понимает то, что означает символ, и знайте, как ввести его.
  2. кодировки UTF-8 так же непонятны как кодировка объекта HTML для тех, кто не понимает их, но они имеют преимущество рендеринга как специальные символы, а не трудно понять десятичную или шестнадцатеричную кодировку.

, пока кодирование Вашей страницы правильно установлено на UTF-8, необходимо использовать фактический символ вместо объекта HTML. Я прочитал несколько документов об этой теме, но самые полезные были:

От UTF-8: статья Secret of Character Encoding :

Википедия является большим тематическим исследованием на предмет приложения, которое первоначально использовало ISO-8859-1, но переключилось на UTF-8, когда это стало слишком громоздким для поддержки иностранных языков. Боты теперь на самом деле пройдут статьи и преобразуют символьную сущность в их соответствующие реальные символы ради удобного для пользователя и searchability.

, Что статья также дает хороший пример, включающий китайское кодирование. Вот сокращенный пример ради лени:

UTF-8:

這兩個字是甚麼意思

Объекты HTML :

&#36889;&#20841;&#20491;&#23383;&#26159;&#29978;&#40636;&#24847;&#24605;

UTF-8 и кодировка объекта HTML оба бессмысленны мне, но , по крайней мере, кодировка UTF-8 является распознаваемой как иностранный язык , и это представит правильно в окне редактирования. Статья продолжает неотступно следование за HTML закодированная объектом версия:

Чрезвычайно неудобный для тех из нас, кто на самом деле знает, какова символьная сущность, полностью непонятна бедным пользователям, которые не делают! Даже немного более удобная для пользователя, "понятная" символьная сущность как & тета; оставит пользователей, которые не заинтересованы изучением HTML, царапающего их головы. С другой стороны, если они будут видеть Оё в окне редактирования, они будут знать, что это - специальный символ, и рассматривайте его соответственно, даже если они не знают, как записать что символ сами.

, Поскольку другие отметили, все еще необходимо использовать объекты HTML для зарезервированных символов XML (амперсанд, меньше, больше - чем).

113
ответ дан 8 revs, 2 users 99% 24 November 2019 в 02:50
поделиться

Я не использовал бы UTF-8 для символов, которые легко перепутаны визуально. Например, трудно отличить emdash от минус, или особенно неразрывное пространство от пространства. Для этих символов определенно используйте объекты.

символы For, которые понятны визуально (такие как китайские примеры выше), разрешение и используют UTF-8, если Вам нравится.

5
ответ дан Ned Batchelder 24 November 2019 в 02:50
поделиться

Лично я делаю все в utf-8 с долгого времени, однако, в странице HTML, всегда необходимо преобразовывать амперсанды (&), больше, чем (>) и меньший затем (<) символы к их эквивалентным объектам, & усилитель; & gt; и & лейтенант;

кроме того, если Вы предназначаете при выполнении некоторого программирования с помощью utf-8 текст, существуют некоторые вещь наблюдать за.

  • XML нужны некоторые дополнительные строки для проверки при использовании объектов.
  • библиотеки Some не манипулируют любезный с utf-8. Например, PHP в некоторых дистрибутивах Linux отбросил полную поддержку utf-8 в их библиотеках регулярных выражений.
  • более трудно ограничить количество символов в тексте, который использует объекты HTML, потому что единственный объект использует много символов. Также всегда существует риск вырезания объекта в половине.
5
ответ дан Marco Luglio 24 November 2019 в 02:50
поделиться

Объекты могут купить Вас некоторая совместимость с глупыми клиентами, которые не понимают кодировку правильно. Я не полагаю, что это включает любые текущие браузеры, но Вы никогда не знаете то, что другие виды программ могли бы подбрасывать Вас ударом.

более полезный, тем не менее, то, что объекты HTML защищают Вас от Ваших собственных ошибок: если Вы неправильно конфигурируете что-то на сервере, и Вы заканчиваете тем, что служили странице с HTTP-заголовком, который говорит, что это ISO-8859-1 и META тег, который говорит, что это UTF-8, по крайней мере, Ваш & mdash; es будет всегда работать.

4
ответ дан Jim Puls 24 November 2019 в 02:50
поделиться

Объекты HTML полезны, когда Вы хотите генерировать содержание, которое будет включенным (динамично) в страницы с (несколькими) различная кодировка. Например, у нас есть белое содержание маркировки, которое включено и в ISO-8859-1 и в закодированные веб-страницы UTF-8...

, Если преобразование набора символов из UTF-8 не было такой большой ненадежной путаницей (Вы всегда спотыкаетесь некоторые символы и некоторые инструменты, которые не преобразовывают правильно), стандартизируя на UTF-8 был бы способ пойти.

4
ответ дан mjy 24 November 2019 в 02:50
поделиться

Если Ваши страницы правильно кодируются в utf-8, у Вас не должно быть потребности в объектах HTML, просто использовать символы, которые Вы хотите непосредственно.

2
ответ дан Otávio Décio 24 November 2019 в 02:50
поделиться

Все предыдущие ответы имеют смысл мне.

, Кроме того: Это главным образом зависит от редактора Вы намерение использовать и язык документа. Поскольку минимальное требование для редактора - то, что это поддерживает язык документа. Это означает, что, если Ваш текст находится на японском языке, остерегайтесь использования редактора, который не показывает им (т.е. никакие объекты для самого документа). Если его английский язык, можно даже использовать старого подобного энергии редактора и использовать объекты только для родственника редко & копия; и друзья. Конечно: & gt; для> и другое экстренное сообщение HTML все еще нуждаются в Escape. Но даже с другим латинским 1 языком (немецкий, французский язык и т.д.) пишущий ä боль в Вас, знают где...

, Кроме того, я лично пишу объекты для невидимых символов и тех, которые выглядят подобными стандартному ASCII и поэтому легко смущены. Например, существует u1173 (бывший похожий на тире в некоторых наборах символов) или u1175, который похож на вертикальную панель. Я использовал бы объекты для тех в любом случае.

2
ответ дан blabla999 24 November 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: