У меня была проблема с обработкой CI $ _GET, и я нашел способ ее преодолеть.
Вопрос в том, Вы видите здесь какие-либо проблемы с безопасностью?
У меня есть все URL, как
/contacts
/company/info
И мой контроллер по умолчанию на CodeIgniter называется index
Я могу заставить CI вести себя с $_GET
, пока я следую за class/function/default_controller
.
Обе эти работы URL:
// class + function + default controller = ok
/class/function/index?var1=this&var2=that
// class + default controller = ok
/class/index?var1=this&var2=that
Дело в том, что я хочу, чтобы они тоже работали
// class without function nor default controller = NOT OK
/class?var1=this&var2=that
// class + function without default controller = NOT OK
/class/function?var1=this&var2=that
Моим решением было небольшое регулярное выражение для $_SERVER['REQUEST_URI']
.
Я не эксперт по регулярным выражениям, поэтому вы можете увидеть здесь возможную проблему безопасности?
/*
|---------------------------------------------------------------
| MAKE CODEIGNITER BEHAVE ON _GETS!
|---------------------------------------------------------------
|
| CI doesn't like to play ball with /contacts?a=23 and fails on several ocasions
| This forces the first ? or & to be replaced by /index/ that is the default controller
|
*/
$_SERVER['REQUEST_URI'] = preg_replace('/\?|\&/', '/index/', $_SERVER['REQUEST_URI'], 1);
Спасибо.