САЙТЫ  ПОД  КЛЮЧ
ОНЛАЙН-СЕРВИСЫ СПРАВОЧНИКИ SEO-ИНСТРУМЕНТЫ РАЗВЛЕЧЕНИЯ

Основы PHP

pic.gif

Оглавление

pic.gif
  1. Основы PHP
  2. Операторы языка PHP
  3. Строковые функции
  4. Массивы
  5. Функции
  6. Работа с файлами
  7. Регулярные выражения
  8. Сессии и cookies в PHP
  9. Работа с FTP
  10. Проверка данных
  11. Гостевая книга
  12. PHP и MySQL


book.gif

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

pic.gif
pic.gif
arrowleft.gif Предыдущая Следующая arrowright.gif

Функция 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 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). Код, написанный в этом файле тоже прост:

<?
   $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>

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

gl3_1.gif

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

gl3_2.gif

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

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

gl3_3.gif

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

linebook1.gif
arrowleft.gif Предыдущая Следующая arrowright.gif
linebook2.gif

 
  Наверх


 

Это интересно

Первое доменное имя, когда-либо зарегистрированное, было Symbolics.com.


Наши реквизиты
WMID: 309688839848
WMR: R325885159214
E-mail: 
  BL:Бизнес-уровень [BL]
QR-код сайта
Онлайн-радио
Больше радиостанций