注意过滤分页参数

http://101ban.sinaapp.com/guest/show/2 这是一个网站留言板的分页页面,show方法后面的参数应该是数字,但是如果人为输入一些字符串,就会导致数据库错误,通过分析错误页面的报错信息,可以通过输入数据库sql命令操作数据库,给网站安全带来威胁。因此,不仅用户输入的信息要过滤,很多自带的参数也要进行过滤,防止出现安全问题。

分页代码如下:

$this->load->library ( 'pagination' );

$config ['base_url'] = site_url () . '/guest/show';

$config ['total_rows'] = $c;

$config ['per_page'] = $pernum = 15;

$config ['uri_segment'] = 3;

$config ['use_page_numbers'] = TRUE;

$config ['first_link'] = '第一页';

$config ['last_link'] = '最后一页';

$config ['num_links'] = 5;

$this->pagination->initialize ( $config );

if (! $this->uri->segment ( 3 )) {

    $currentnum = 0;

} else {

    $currentnum = is_numeric($this->uri->segment ( 3 ))?(intval($this->uri->segment ( 3 ) - 1)) * $pernum:0;

}

 

$current_page=is_numeric($this->uri->segment ( 3 ))?intval($this->uri->segment ( 3 )):1;

if($current_page){

    $data ['title'] = '第'.$current_page.'页-留言本-大冶实验高中首届宏志班网站';

}

else{

    $data ['title'] = '留言本-大冶实验高中首届宏志班网站';

}

 

$data ['liuyan'] = $this->ly->getLy ( $pernum, $currentnum );

其中:

 

$current_page=is_numeric($this->uri->segment ( 3 ))?intval($this->uri->segment ( 3 )):1;

$currentnum = is_numeric($this->uri->segment ( 3 ))?(intval($this->uri->segment ( 3 ) - 1)) * $pernum;

 

这两句判断了参数是否为数字。防止非法字符输入。

 

你可能感兴趣的:(分页)