Как я могу прочитать QueryString в CodeIgniter?

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

http://www.mysite.com/controller/method/params?affiliate=123&sub_id=456

Как я могу получить параметры И параметры $_GET, обозначенные в этом URL?

3 ответа

Решение

И все же, иногда вам нужен доступ к переменным GET в CodeIgniter.

Один яркий пример - использование API, который отправляет постбэк на ваш сайт (Paypal и т. Д.)

На мой взгляд, самый простой способ - это проанализировать переменную сервера с нужными вам данными GET, поскольку $_GET была стерта (в моем примере REQUEST_URI содержит мои данные GET.):

parse_str(substr(strrchr($_SERVER['REQUEST_URI'], "?"), 1), $_GET);

Это позволяет использовать функциональность именно там, где вам нужно, не требуя глобального изменения настроек платформы.

Вот пример использования.

class Pgate extends Controller {
   function postback() {
      parse_str(substr(strrchr($_SERVER['REQUEST_URI'], "?"), 1), $_GET);
      $receipt = $this->input->xss_clean($_GET['receipt']);
   }
}

Вы всегда можете получить такие данные:

$this->input->get('your_get_variable', TRUE);

Надеюсь, это работает!

Если вы действительно хотите использовать строку запроса в codeigniter, вы можете использовать http://site.com?c=controller&m=method&param1=x&param2=y

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

Другие вопросы по тегам