П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 176964 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 74125 раз(а).

Учебник HTML.
Просмотров 73308 раз(а).

Руководство по PHP5.
Просмотров 44185 раз(а).

Хостинг через призму DNS.
Просмотров 50869 раз(а).

Подборка текстов стандартных документов.
Просмотров 44357 раз(а).

Учебник PHP - Самоучитель
Просмотров 50609 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 51023 раз(а).

Внешние атаки...
Просмотров 41334 раз(а).

Учебник PHP.
Просмотров 36564 раз(а).

SSI в примерах.
Просмотров 27438 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




Строковые функции PHP

Функция htmlspecialchars

htmlspecialchars() 

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

Синтаксис:

string htmlspecialchars(string str [, int quote_style [, string charset]]);

Первый аргумент – строка, в которой надо выполнить преобразование. В качестве второго необязательного аргумента принимается одна из двух констант: ENT_QUOTES или ENT_QUOTES. Первая константа передается если надо транслировать кавычки, а вторая, если этого делать не надо. Третий необязательный аргумент принимает строку, представляющую набор символов, используемых в преобразовании (по умолчанию ISO-8859-1).

К примеру, если Вы обрабатываете какое-то сообщение $msg формы, то обработка его функцией htmlspecialchars() возможна следующим образом:

$msg = htmlspecialchars($msg);

Как видите, все просто.

А для того, чтобы у Вас все это хорошенько запомнилось приведем такой поучительный примерчик, который, надеемся, заставит Вас не забывать об этой функции.

Давайте напишем примитивный php скриптик, который будет отображать данные, вводимые в форме.

<?
   $action = $HTTP_POST_VARS["action"];
   if ( empty($action) )
   {
   ?>
      <HTML>
      <HEAD>
      <TITLE>Примерчик</TITLE>
      </HEAD>
      <BODY>
      <center>
      <table width=1 border=0>
      <form action=test1.php method=post>
         <input type=hidden name=action value=post>
         <tr><td colspan=2>Сообщение<br><textarea cols=50 rows=8 name=msg>
         <? echo $msg; ?>
         </textarea></td></tr>
         <tr><td colspan=2><input type=submit value='Добавить'></td></tr>
      </form>
      </table>
      </center>
      </BODY>
      </HTML>
   <?
   }
?>

Ничего сложного, просто форма для ввода сообщения. Выводится и обрабатывается введенное сообщение файлом, указанным action’е формы (test1.php). Код, написанный в этом файле тоже прост:

<?
   $msg = substr($HTTP_POST_VARS["msg"],0,1024);
   $msg = htmlspecialchars($msg);
   print "<P>".$msg."</P>\n";
?>

Вроде как все понятно. Выделяем из переменной $HTTP_POST_VARS сообщение (о функции substr() смотрите чуть ниже), обрабатываем это сообщение функцией htmlspecialchars() и выводим.

А теперь давайте немного пошутим, и введем в форму для вода сообщения вместо безобидного текста вот такой javascript-код (пока тоже безобидный):

<Script Language="JavaScript">
   alert("Приветик!"); // функция вывода в JavaScript
</Script>

Т.е. наша форма примет следующий вид:

В случае, если при обработке сообщения мы использовали эту чудо-функцию, ничего страшного не произойдет и мы просто увидим текст, который набрали:


<Script Language="JavaScript">alert("Приветик!");</Script>

А вот если, мы не обработали сообщение функцией htmlspecialchars() (закомментарьте строку $msg = htmlspecialchars($msg); в test1.php), то мы увидим уже не текст скрипта, а результат его выполнения:

Как понимаете, "приветик" может быть совсем не таким безобидным.

Назад | Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru