如何处理Codeigniter中的无效页码?

时间:2011-03-21 16:09:02

标签: php codeigniter

我正在使用CI创建这个新应用程序的QA。实施分页后,处理无效页码的典型方法是什么?没有什么能阻止我手动更改URL中的偏移量。所以如果max是20,如果我修改为100会发生什么?我正在集思广益,检查偏移是否有效以及它是否在某处重定向或显示错误消息(不确定我是否愿意这样做)。

2 个答案:

答案 0 :(得分:0)

您可以检查返回的结果数量并返回404。

if ($this->page->get_pages(20, 100) {
  $this->load->view('our_view');
} else {
  show_404();
}

答案 1 :(得分:0)

如果有人后来遇到这个问题,我就是这样解决问题的。

$max_offset = (ceil($config['total_rows'] / $config['per_page']) - 1) * $config['per_page'];

if (($this->start > $max_offset) && ($max_offset >= 0)) {
    redirect("/report/filter");                 
} else {            
    $data['records'] = $this->report_model->filterItem($records, false, $config['per_page'], $this->start);         
    $this->load->view('report_view', $data);
}