Как отключить Codeigniter _GET Query Strings? - PullRequest
1 голос
/ 15 декабря 2011

Я думал, что Codeigniter удалил возможность извлекать данные _GET из URL и добавил свою собственную функцию, где вы можете извлекать сегменты URI. например. localhost/controller/method/10

Сегодня после обновления до Codeigniter 2.1.0 я попытался $this->input->get('data'), и в моем URL localhost/controller/method?data=10, и это сработало. Я как-то сломал мою установку Codeigniter или эта функция должна быть здесь сейчас?

В моем файле config/config.php я нашел следующие две строки:

$config['allow_get_array'] = TRUE;
$config['enable_query_strings'] = FALSE;

Я думал, что первая строка просто включит метод GET Codeigniter с использованием сегментов URI, например. Контроллер / способ / данные / MoreData. В то время как второй будет включать строки запроса, например. ? Данные = 10

Так чего мне здесь не хватает?

Ответы [ 2 ]

1 голос
/ 15 декабря 2011
$config['allow_get_array'] = TRUE;
$config['enable_query_strings'] = FALSE;

думал, что первая строка просто включит метод GET Codeigniter с использованием сегментов URI.В то время как второй будет включать строки запроса.

AFAIK, вы правы для второго, в то время как для первого это просто означает, что массив $ _GET не «уничтожается и очищается»Входной класс.В частности, я ссылаюсь на метод _sanitize_global() в классе ввода, который имеет следующие строки кода:

// Is $_GET data allowed? If not we'll set the $_GET to an empty array
        if ($this->_allow_get_array == FALSE)
        {
            $_GET = array();
        }
        else
        {
            if (is_array($_GET) AND count($_GET) > 0)
            {
                foreach ($_GET as $key => $val)
                {
                    $_GET[$this->_clean_input_keys($key)] = $this->_clean_input_data($val);
                }
            }
        }

Я посмотрел в руководстве пользователя и есть раздел на $ this->input-> get (), но я подумал, что только что говорил о способе Codeigniter с сегментами URI.

Похоже, вы ищете / ссылаетесь на метод $this->uri->segment(n), который выбирает указанный n сегмент внутри строки uri;что (очень) примерно эквивалентно извлечению параметра запроса в URL.

0 голосов
/ 15 декабря 2011

нет необходимости использовать $ _GET с codeigniter, просто используйте $this->uri->segment(n), чтобы получить переменную из URL, сегмента в соответствии с вашим URL, например

http://localhost/myweb/index.php/controller/function/myvar

тогда сегмент 1 - это контроллер, 2 - это функция, а 3 - это myvar, вот и все, ясно и безопасно, я гость: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...