Класс Input (ввод)
Класс Input выполняет две задачи:
Препроцессинг глобальных данных ввода в целях безопасности;
Предоставляет некоторые функции-помощники для получения данных ввода и их препроцессинга.
Примечание: Этот класс инициализируется системой автоматически, поэтому нет нужды делать это вручную.
Фильтрация безопасности
Функция фильтрации безопасности вызывается автоматически при загрузке нового контроллера. Она делает следующее:
Если параметр $config['allow_get_array'] установлен в FALSE (по умолчанию TRUE), уничтожает глобальный массив GET.
Удаляет все глобальные переменные в случае, если включено register_globals.
Фильтрует массивы GET/POST/COOKIE, допуская только алфавитно-числовые (и некоторые другие) символы.
Предоставляет XSS-фильтрацию (Cross-site Scripting Hacks). Эта опция может быть включена глобально, или только на один запрос.
Стандартизирует окончания строк в \n (в Windows \r\n)
Использование данных POST, COOKIE и SERVER
CodeIgniter имеет три функции-помощника, которые позволяют вам получать данные POST, COOKIE и SERVER. Основное преимущество использования функций, вместо того, чтобы получать данные напрямую ($_POST['parameter']) состоит в том, что функции проверяют их существование, и в соответствии с этим возвращают FALSE или данные. Это позволяет вам более удобно использовать данные без ручной проверки их существования. Другими словами, обычно вы можете делать так:
Со встроенными функциями CodeIgniter вы можете делать просто так:
$something = $this->input->post('something');
Эти три функции:
$this->input->post()
$this->input->cookie()
$this->input->server()
$this->input->post()
Первый параметр содержит имя элемента POST, который вы хотите получить:
$this->input->post('some_data');
Функция возвращает FALSE, если указанный элемент не существует.
Второй опциональный параметр позволяет вам пропускать данные через фильтр XSS. Эта опция включается установкой второго параметра в булево TRUE.
$this->input->post('some_data', TRUE);
Чтобы получить массив всех элементов POST, вызовите эту функцию без параметров.
Чтобы получить все элементы POST и пропустить их через фильтр XSS, установите первый параметр в NULL и второй параметр в TRUE.
Эта функция вернет булево FALSE, если массив POST пустой.
$this->input->post(NULL, TRUE); // возвращает все элементы POST, пропустив их через фильтр XSS
$this->input->post(); // возвращает все элементы POST без XSS-фильтрации
$this->input->get()
Эта функция идентична функции выше, только она отдает данные GET:
$this->input->get('some_data', TRUE);
Чтобы получить массив всех элементов GET, вызовите эту функцию без параметров.
Чтобы получить все элементы GET и пропустить их через фильтр XSS, установите первый параметр в NULL и второй параметр в TRUE.
Эта функция вернет булево FALSE, если массив GET пустой.
$this->input->get(NULL, TRUE); // вернет все элементы GET, пропустив их через фильтр XSS
$this->input->get(); // вернет все элементы GET без XSS-фильтрации
$this->input->get_post()
Эта функция вернет оба потока данных, из GET и из POST. Сперва будет смотреть POST, потом GET:
$this->input->get_post('some_data', TRUE);
$this->input->cookie()
Эта функция идентична функции POST, только она будет получать данные Cookie:
$this->input->cookie('some_data', TRUE);
$this->input->server()
Эта фунция идентична функциям выше, только она получает серверные данные:
$this->input->server('some_data');
$this->input->set_cookie()
Устанавливает куки, содержащие указанные значения. Есть два способа передать информацию в эту функцию, чтобы установить куки: массивом и раздельно указав параметры:
Использование массива
Используя этот метод, передайте ассоциативный массив в первом параметре:
$this->input->cookie()
Позволяет вам получить куки. Первый параметр содержит только имя куки, которую вы ищете (включая любые префиксы):
cookie('some_cookie');
Функция вернет FALSE, если элемент, который вы хотите получить, не доступен.
Второй опциональный параметр позволит вам пропустить данные через фильтр XSS. Он включается установкой значения в TRUE.
cookie('some_cookie', TRUE);
Создадим представление в application/views
blogform.php
<html>
<head>
<title>Форма загрузки</title>
</head>
<body>