Справка веб-мастера     Справочник 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-2010       Разработка сайта SoftHolm.com