Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ WEB Разработка ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

FreeBSD and Nix

Общая

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Codeigniter: input post cookie server


Класс 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 или данные. Это позволяет вам более удобно использовать данные без ручной проверки их существования. Другими словами, обычно вы можете делать так:

if ( ! isset($_POST['something']))
{
$something = FALSE;
}
else
{
$something = $_POST['something'];
}

Со встроенными функциями 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()
Устанавливает куки, содержащие указанные значения. Есть два способа передать информацию в эту функцию, чтобы установить куки: массивом и раздельно указав параметры:
Использование массива
Используя этот метод, передайте ассоциативный массив в первом параметре:

$cookie = array(
'name' => 'The Cookie Name',
'value' => 'The Value',
'expire' => '86500',
'domain' => '.some-domain.com',
'path' => '/',
'prefix' => 'myprefix_',
'secure' => TRUE
);

$this->input->set_cookie($cookie); 

Примечания:
Требуются только имя и значение. Чтобы удалить куку, оставьте время истечения пустым.

Раздельно переданные параметры
Если вы предпочитаете, можете установить куки, передав данные в функцию отдельными параметрами:

$this->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure);

$this->input->cookie()
Позволяет вам получить куки. Первый параметр содержит только имя куки, которую вы ищете (включая любые префиксы):

cookie('some_cookie');

Функция вернет FALSE, если элемент, который вы хотите получить, не доступен.
Второй опциональный параметр позволит вам пропустить данные через фильтр XSS. Он включается установкой значения в TRUE.

cookie('some_cookie', TRUE);

Создадим представление в application/views
blogform.php
<html>
<head>
<title>Форма загрузки</title>
</head>
<body>


<form action="<?=base_url();?>index.php/blog" method="POST">

Name<input type="text" name="name" size="20" />
Password<input type="password" name="password" size="20" /><br />
<input type="submit" value="Отправить" />

</form>

</body>
</html>


Перепишем контроллер в application/controllers
blog.php
<?php
class Blog extends CI_Controller {

        public function index()
        {
            $data = $this->input->post(NULL, TRUE);
            if(empty($data))
            {
                $this->load->helper('url');
                $this->load->view('blogform');
            }
            else
            {
                $name = $data['name'];
                $password = $data['password'];
                echo "Name is: $name , and Pass is: $password";
            }

        }
        

        
}

И вызовем http://site/index.php/blog


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект