Лучшая практика в обработке недопустимого параметра CodeIgniter - PullRequest
2 голосов
/ 14 ноября 2011

Допустим, у меня в контроллере есть метод с именем

book($chapter,$page);

где $ chapter и $ page должны быть целыми числами. Для доступа к методу URI будет выглядеть как

book/chapter/page

Например,

book/1/1

Если пользователь пытается получить доступ к URI без передачи всего параметра или неверного параметра, например

book/1/

или книга / abcxyz / 1

Я могу сделать некоторые операторы if else для обработки, например

if(!empty($page)){
   //process
}else{
   //redirect
}

У меня вопрос: есть ли лучшая практика для обработки этих недопустимых параметров, переданных пользователем? Моя конечная цель - перенаправлять на главную страницу всякий раз, когда есть неверный параметр ? Как мне этого добиться?

Ответы [ 2 ]

3 голосов
/ 14 ноября 2011

Лучшей логикой здесь является добавление значений по умолчанию:

book($chapter = 1, $page = 1);

, а затем проверка, являются ли они числовыми

Таким образом, автоматически открывается 1-я страница1-й главы, если параметры отсутствуют или не числовые.

3 голосов
/ 14 ноября 2011

Использование маршрутизации CodeIgniter в config/routes.php очень полезно здесь, что-то вроде этого:

$route['book/(:num)/(:num)'] = "book/$1/$2";
$route['book/(:any)'] = "error";
$route['book'] = "error";

Должен поймать все.В маршрутах может содержаться практически любое регулярное выражение, поэтому можно проверить, что параметры являются числовыми, начинаться со строчной буквы и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...