处理无效参数CodeIgniter的最佳实践

时间:2011-11-14 14:32:59

标签: codeigniter error-handling

假设我在Controller中有一个名为

的方法
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 个答案:

答案 0 :(得分:3)

config/routes.php中使用CodeIgniter路由非常有用,例如:

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

应该抓住一切。您可以在路由中使用几乎任何正则表达式,因此可以验证参数是否为数字,以小写字母开头等。

答案 1 :(得分:3)

这里最好的逻辑似乎是添加默认值:

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

然后检查它们是否为numeric

如果参数缺失或非数字,它会自动打开第1章的第1页。