Я пытался выяснить, как включить $ _GET в CI.
Кажется, что платформа сознательно уничтожает $ _GET массив, и что включение его требует серьезного переделывания базовых классов. кто-либо может сказать, почему это, и как преодолеть его?
обратите внимание, я надеюсь сохранять парсинг URI и маршрутизацию путем, они - просто имеют $ _GET доступный также.
Добавьте следующую библиотеку в свои библиотеки приложений. Он переопределяет поведение библиотеки ввода по умолчанию при очистке массива $ _GET. Это позволяет смешивать сегменты URI и строку запроса.
application / libraries / MY_Input.php
class MY_Input extends CI_Input
{
function _sanitize_globals()
{
$this->allow_get_array = TRUE;
parent::_sanitize_globals();
}
}
Также необходимо изменить некоторые параметры конфигурации. Параметр uri_protocol необходимо изменить на PATH_INFO и знак '?' необходимо добавить символ в список разрешенных символов в URI.
application / config / config.php
$config['uri_protocol'] = "PATH_INFO";
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-?';
Затем можно получить доступ к значениям, переданным через строку запроса.
$this->input->get('x');
Из руководства MUDICIGNITER о безопасности :
GET, POST и Cookie
Получить данные просто запрещены Codeigniter Так как система использует Сегменты URI, а не традиционные Строки запросов URL (если у вас нет опция строки запроса включена в вашем Конфигурация файла). Global Get Array unset по классу ввода во время системы Инициализация.
Прочитайте это ввод форума для возможных решений ( получает интересную от на полпути вниз Page 1 ).