Codeigniter и разбиение на страницы со строками запроса - PullRequest
0 голосов
/ 02 ноября 2010

Я пытаюсь создать поиск с нумерацией страниц в Codeigniter и хотел бы помочь с этим.

До сих пор я понял, что не могу использовать ОБА сегменты URL и строки запроса вместе.Использование только строк запроса приводит к очень уродливым URL-адресам.

Я понимаю, что Codeigniter разрушает GET, и я пытаюсь вернуть его обратно. Поэтому ... если я помещу это в конструктор контроллера поиска,мои проблемы должны быть решены?

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

Как, если это работает для меня, есть ли что-то, что мне нужно знать о безопасности?

1 Ответ

3 голосов
/ 02 ноября 2010

Пока я понял, что не могу использовать ОБА сегменты URL и строки запроса вместе.

Конечно, вы можете.Попробуйте это в вашей конфигурации:

$config['uri_protocol'] = "PATH_INFO";

Это должно начать работу.Теперь, поскольку CI отказывается от переменной $ _GET и очищает ее, вам необходимо заполнить ее следующим образом:

parse_str($_SERVER['QUERY_STRING'],$_GET);

Теперь единственная реальная проблема заключается в том, что, если у вас включена глобальная фильтрация XSS, вы должны знать, чтовы просто вручную проанализировали строку запроса в глобальной переменной $ _GET.Это означает, что вы не прошли через фильтры XSS.В CI 1.x вы можете получить доступ к фильтру через библиотеку ввода следующим образом:

$myvar = $this->input->xss_clean($_GET['myvar']);

В CI 2.x вы делаете это через библиотеку безопасности следующим образом:

$myvar = $this->security->xss_clean($_GET['myvar']);

Конечно, само собой разумеется, что вы можете расширить класс Controller, добавив метод get(), который делает все это автоматически, так что вы можете сделать это:

$myvar = $this->get('myvar');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...