Кодирование тегов HTML

В предыдущем разделе теги просто удалялись из текста. Но что делать, если требуется отобразить текст, содержащий HTML-теги, но при этом еще и обеспе­чить безопасность приложения? В этом случае уместно использовать функцию htmlentities, которая осуществляет кодирование тегов, преобразовывая их в последовательность специальных символов. Например, текст "<В>Вася</В>" будет преобразован в строку "&lt;b&gt;Вася&lt;/b&gt;", которая при ото­бражении ее браузером будет выглядеть как исходная строка. Использование этой функции приведено в примере.

возможные значения аргумента quoute_style
code: #php
<HTML>
<HEAD>
<TITLE>Кодирование тегов</TITLE>
</HEAD>
<BODY>
<CENTER>
<H1>Кодирование тегов</H1>
<?рпр
 
$errors = array();
if (isset($_REQUEST["seen_already"])) {
  validate_data  ();
  if (count($errors) > 0)) {
    display_errors();
    display_form();
  } else {
    process_data();
  }
} else {
  display_form();
}
 
function validate_data() {
  global $errors;
 
  if ($_REQUEST["Name"] ==  "") {
    $errors[] =  "<FONT COLOR='RED'>Имя обязательно для ввода</FONT>";
  }
}
 
function display_errors () {
  global Serrors;
 
  foreach ($errors as $err) {
    echo $err,  "<BR>";
  }
}
 
function process_data() {
  echo "Ваше имя:  ";
  $ok_text = htmlentities($_REQUEST["Name"], ENT_N0QU0TES, 'CP-1251');
  echo $ok_text;
}
 
function display_form() {
  echo "<FORM METH0D='POST' ACTI0N='phpencode.php'>";
  echo "Введите Ваше имя";
  echo "<BR>";
  echo "<INPUT NAME='Name' TYPE='TEXT'>";
  echo "<BR><BR>";
  echo "<INPUT TYPE='SUBMIT' VALUE='OK'>";
  echo "<INPUT TYPE='HIDDEN' NAME='seen_already' VALUE='data'>";
  echo "</FORM>";
}
?>
</CENTER>
</BODY>
</HTML>

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

результат выполнения примера
Книга: PHP в примерах. Купить книгу
Автор: Стивен Хольцнер. Переводчик: С. Банников
Поделиться:

Похожие статьи: