$_GET содержит строку URL, а фактические параметры запроса пусты Codeigniter

Я работал над веб-приложением, над которым ранее работали люди, с которыми у меня нет возможности связаться.

Я считаю, что мы в настоящее время на CI_VERSION 1.7.0.

Я убедился, что все переменные конфигурации enable_query/allow_get_array верны. Я вижу правильные значения в заголовке (параметры строки запроса).

Пример проблемы ниже:

//E.g.
//URL: http://www.fakeURL.com/something/stuff?color=blue&gender=boy

var_dump($_GET);
// array(1) { '/something/stuff' => string(0) "" } 

person Base Desire    schedule 06.01.2015    source источник
comment
Может быть, переменная $_GET перезаписана в другом месте?   -  person GuyT    schedule 06.01.2015
comment
@GuyT Я думаю, что вы правы, и я так думал, но все же я просмотрел кодовую базу и, похоже, не нашел, что такое происходит.   -  person Base Desire    schedule 06.01.2015
comment
Это должно работать. Вы уверены, что something — это имя вашего контроллера, а stuff — имя вашего метода?   -  person Shaiful Islam    schedule 06.01.2015


Ответы (3)


Попробуйте получить параметры URL со встроенным классом: input.

$p = $this->input->get();
var_dump($p);

Codeigniter рекомендует делать это так. Например, с помощью этой функции нельзя получить параметр дважды, так как во второй раз он очищается. Поэтому мы не знаем, как они управляют параметрами.

person gosp    schedule 06.01.2015

В более ранних версиях CI массив $_GET включал запрошенный контроллер/метод после перезаписи URL-адреса (как подробно описано в этом ответе) , остальная информация была сохранена в классе ввода и удалена (см. устаревшие документы).

Как указано в другом ответе, вам нужно будет использовать $this->input->get();, который будет содержать исходные параметры $_GET.

person Adam Westbrook    schedule 06.01.2015
comment
Я пробовал класс ввода несколько раз, но я рассмотрю то, что вы сказали. Спасибо за ответ. - person Base Desire; 06.01.2015
comment
Ах, хорошо, возможно, стоит обновить свой вопрос, добавив, что происходит, когда вы var_dump($this->input->get());? - person Adam Westbrook; 06.01.2015
comment
Я нашел немного обходного пути и разместил его в качестве ответа на это. Но чтобы ответить на ваш вопрос, это оказалось ложным. - person Base Desire; 06.01.2015

В итоге я использовал это решение, найденное здесь: https://stackoverflow.com/a/2283881/1626354

Я скажу, что это скорее «обходной путь», чем решение, но сейчас я не могу больше тратить на это время.

Спасибо всем за ваши полезные предложения. Надеюсь, это когда-нибудь тоже пригодится кому-то другому.

person Base Desire    schedule 06.01.2015