phpBB3Функция request_var ()

BigBoxВ phpBB все данные, отправляемые пользователями, скрипт получает с помощью функции request_var ().

Ее использование позволяет в некоторой мере защитить web-приложение от SQL-инъекций, XSS и прочих уязвимостей. Она совершает первичную обработку, проверяя, чтобы значение, переданное пользователем, было нужного нам типа.

Все возвращаемые функцией значения также очищаются от посторонних символов с помощью stripslashes () и htmlspecialchars ().

 

Синтаксис

 mixed request_var ( $var_name , $default [, $multibyte = false [, $cookie = false]] )

Параметры

var_name
Имя параметра, который Вы хотите получить от пользователя.

default
Значение по умолчанию. Если получаемый от пользователя параметр будет отсутствовать, то функция вернет значение, установленное в $default.

Интересно, что у $default есть еще одно полезное свойство: с помощью него функция узнает какой тип должен быть у получаемого от пользователя параметра.

multibyte
Необязательный параметр. По умолчанию установлен в false. Установите в true, если получаемая строка может содержать не-ASCII символы.

cookie
Необязательный параметр. Установите в true, если получаемое Вами значение будет передаваться через cookie.

Примечание: Использовать $_POST, $_GET и $_COOKIE не запрещается, если Вам необходимо проверить наличие параметра, например:

<?php
  $submit = (isset($_POST['submit'])) ? true : false;
?>

 

Примеры использования

<?php
  // Правильное использование. Переменная типа int.
  $start = request_var('start', 0);
 
  // Неправильное использование, так как это может привести 
  // к SQL-уязвимости, потому что параметр не очистится правильно.
  $start = request_var('start', '0');
 
  // Правильное использование. Переменная типа float.
  $price = request_var('price', 0.0);
?>

Получение мультибайтовой строки:

   $message = utf8_normalize_nfc(request_var('message', '', true));

Внимание: Не забывайте принимать мультибайтовые строки везде, где они могут использоваться. К примеру, при создании топиков, сообщений, личных сообщений и так далее. Всегда нормализируйте получаемые в UTF8 строки. Дело в том, что некоторые символы могут представлены в виде кодов. Например, символ Å может быть представлен кодом U+00C5.

<?php
  $_REQUEST['multibyte_string'] = 'Käse';
 
  // Нормализированная мультибайтовая строка.
  echo utf8_normalize_nfc(request_var('multibyte_string', '', true));
 
  // ASCII строки не нуждаются в нормализировании.
  echo request_var('multibyte_string', '');
 
?>

Получение значения из Cookie:

<?php
  $cookie = request_var('cookie_time', 0, false, true);
?>


Есть что сказать?
Ваше имя:
Ваш e-mail:
Ваш сайт:
Ваше мнение:




земляные работы в Донецке