假设我在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
}

我的问题是,是否有最佳实践来处理用户传递的无效参数?我的最终目标是只要有无效的参数就重定向到主页?我该如何实现?

最佳答案

config/routes.php中使用CodeIgniter路由在这里非常有用,如下所示:

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

应该捕获一切。路由中几乎可以包含任何正则表达式,因此可以验证参数是否为数字,以小写字母开头等。

关于codeigniter - 处理无效参数CodeIgniter的最佳实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8123090/

10-15 11:39