Включить строки запроса в Code Igniter

Я пытаюсь внедрить OAuth Twitter в свое веб-приложение Code Igniter, в котором URL-адрес обратного вызова равен /auth/, поэтому после аутентификации в Twitter вы попадаете на /auth/?oauth_token=SOME-TOKEN.

Я хочу сохранить хороший чистый URL-адрес, предоставляемый фреймворком с использованием стиля URL-адреса /controller/method/, но я также хочу включить строки запроса, всегда будет только одно имя данных oauth_token, поэтому все в порядке, если он должен быть жестко закодирован.

Любые идеи? Я пробовал множество вещей, которые люди говорят делать, но ничего не работает :( PS: я использую метод .htaccess для перезаписи URL.


person tarnfeld    schedule 14.05.2010    source источник


Ответы (3)


Есть несколько способов справиться с этим.

Большинство людей и Twitter Lib Эллиота Хогина расширяют библиотеку CI_Input библиотекой MY_Input, которая устанавливает allow_query_strings в true.

Вам также потребуется добавить ? к разрешенным символам в config/config.php и установить для $config['url_protocal'] значение PATH_INFO.

см. здесь: Включить GET в CodeIgniter

person Zack    schedule 15.05.2010

Codeigniter Reactor позволяет получить доступ к $_GET напрямую или через $this->input->get(). Вам не нужно использовать MY_Input или даже изменять ваш config.php. Однако этот метод оставляет строку запроса в URL-адресе.

person David Xia    schedule 04.04.2011

Я использовал взломанный index.php, чтобы распознавать пользователей, возвращающихся из Twitter, проверять действительные и безопасные значения, а затем перенаправлять их на удобный URL-адрес CodeIgniter.

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

person Community    schedule 15.05.2010
comment
Если вы собираетесь пойти по этому пути, почему бы просто не иметь отдельный файл PHP, который выполняет преобразование строки запроса в сегмент URI? Я думаю, это было бы лучше, чем взламывать index.php CI. - person Zack; 15.05.2010
comment
Да, я думаю, я только что добавил одну строку в php-файл, которая определяет, перехватывать или нет. - person ; 16.05.2010