Поддержка $_GET в Codeigniter 2.0

суббота, 15 мая 2010 г.

В предыдущих версиях для того, чтобы $_GET работал надо было в файле config.php
$config['uri_protocol']    = "AUTO"; сменить на $config['uri_protocol']    = "PATH_INFO";
и
$config['enable_query_strings'] = FALSE; на $config['enable_query_strings'] = TRUE;

Но в новой 2.0 версии этого замечательно фреймворка при включении $config['enable_query_strings'] в TRUE ваши адреса будут иметь вид http://www.domain.com/?/controller

Чтобы избежать такого поведения надо сделать:
$config['uri_protocol']    = "PATH_INFO"; 
$config['enable_query_strings'] = FALSE;
$config['enable_hooks'] = TRUE;

В папке hooks создать файл, например, enable_get.php такого содержания:


function remake_get()
{
    parse_str($_SERVER['QUERY_STRING'],$_GET);
}
Дальше в файле /config/hooks.php вписать следующее:

$hook['pre_controller'][] = array(
    'function' => 'remake_get',
    'filename' => 'enable_get.php',
    'filepath' => 'hooks'
);

Таким образом вы будете иметь адреса нормального вида и сможете использовать $_GET для своих нужд.

1 коммент.:

Zares комментирует...

Несомненно, CI2 - новая ступень на пути развития современных PHP-фреймворков...

Каким способом будем проверять данные, полученные методом GET?

Copyright © 2010 WEB IT blog