Справка веб-мастера     Справочник web-мастера и программиста
  PHP       Интернет       Беб-дизайн       Безопасность       Javascript     Информеры     Game      
          Игра шарики



Функции htmlentities и htmlspecialchars в PHP

Эти функции преобразования символов выполняют важную роль в PHP – они производят преобразование спецсимволов в их HTML эквиваленты. Функции гарантируют, что если Ваш доброжелатель напишет на форуме код php или javascript (код может быть безобидным или опасным для сайта), то этот код выполняться не будет! и отобразиться нормально. Функции следует применять, если нужно вывести в броузере какой-то код и вообще любой вводимый пользователем текст.

Функция htmlspecialchars в PHP

htmlspecialchars производит преобразование спецсимволов в HTML-представление.

Синтаксис: string HtmlSpecialChars(string str [, int quote_style]);

Назначение этой функции - гарантировать, что в выводимой строке ни один участок не будет воспринят как тэг.

Функция заменяет в строке некоторые символы (амперсанд, кавычки и знаки "больше" и "меньше") на их HTML-эквиваленты, так, чтобы они выглядели на странице "самими собой". Типичное применение этой функции - вывод сообщения в гостевой книге, если пользователю запрещено вставлять теги.

При помощи необязательного атрибута quote_style можно указать, что делать с кавычками:

ENT_COMPAT (по умолчанию) - разрешить трансляцию только двойных кавычек
ENT_QUOTES - разрешить трансляцию любых кавычек
ENT_NOQUOTES - запретить трансляцию любых кавычек

Пример:


<?

  $string = substr($_GET["string"],0,20);
  $string = trim($string);
  $string = htmlspecialchars(stripslashes($string));
?>



В данном примере вначале производится обрезка по длине значения переменной $string, которая вводится пользователем методом GET. Если известна длина в символах какой-либо переменной, то для повышения уровня безопасности скрипта PHP всегда рекомендую производить операцию усечения по длине данной переменной (функция substr), что ограничивает возможности для "плохого парня", который будет пытаться найти слабые места в сценарии.

Далее удаляеем начальные и конечные пробельные пробелы, к пробельным символам относятся символы "\n", "\r", "\t", "\v", "\0" и пробел.

А потом удаляем HTML - теги и обратные слеши (stripslashes). Вводимый пользователем текст необходимо обработать функциями удаления HTML-тегов (для исключения возможности написания скриптов на JavaScript и Visual Basic) и обратных слешей (для исключения возможности написания скриптов на Perl).

Функция htmlentities в PHP

htmlentities производит конвертацию символов, имеющих HTML-представление.

Синтаксис: string htmlentities(string str [, int quote_style]);

Эта функция похожа на htmlspecialchars(), но в ней производиться не выборочная трансляция, а полная - для всех символов, которые могут иметь эквивалентные HTML-представления.

Необязательный атрибут quote_style аналогичен атрибуту quote_style в функции htmlspecialchars.







  Copyright © King-dom.ru, 2008-2013       Разработка сайта SoftHolm.com