bob体育平台php防止sql注入之过滤分页参数

2019-12-17 19:12栏目:编程
TAG:

诚如在数额分页的时候须求取稳妥前页的多少和总条数,平凡的人是在model中封装四个函数分别收获当前页的多寡和数量总条数,业务逻辑相符,认为稍微冗余,能够封装在同盟:

实例

复制代码 代码如下:/** * 获取分页数据及总条数 * @param string @tablename 表名 * @param mixed $where 条件 * @param int $limit 每页条数 * @param int $offset 当前页 */ public function get_page_data($tablename, $where, $limit, $offset, $order_by, $db) { if { return FALSE; } $dbhandle = empty ? $this->db : $db; if { if { $dbhandle->where; } else { $dbhandle->where; } } $db = clone; $total = $dbhandle->count_all_results; if { $db->limit; } if { $db->offset; } if { $db->order_by; } $data = $db->get->result_array(); return array('total' => $total, 'data' => $data); }

 代码如下

CI框架分页类使用体验

$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.'页-留言本-大冶实验高级中学第3届宏志班网址';
}
else{
    $data ['title'] = '留言本-大冶实验高中首届宏志班网址';
}
 
$data ['liuyan'] = $this->ly->getLy ( $pernum, $currentnum );

CI分页的url地址有多样方式a卡塔尔(英语:State of Qatar) locahost/news/page/2 这几个2意味着第二页b卡塔尔(英语:State of Qatar)localhost/news/page/20 那么些20意味从第20条记下初步分页,即页面包车型客车率先条记下,是数据库中的第20条记下。c卡塔尔localhost/news?per_page=2 第二页d) localhost/news?per_page=20 同b)

其中:

首先大家先看一下CI分页的参数:

 代码如下

复制代码 代码如下:$config['base_url'] = $url; /* 分页的功底UHighlanderL倘使你想用a、b的链接方式,则该url应该情势如/news/page/ 倘诺链接是c、d的样式,则url应该如/news? */ $config['total_rows'] = $total;//记录总的数量,那个没什么好说的了,正是您从数据库拿到记录总数$config['per_page'] = $pagesize; //每页条数。额,那个也没怎么好说的。。本人设定。默认为10相同。 $config['page_query_string'] = TRUE; /*传参格局。开启true则会自动在您的url前面加上&per_page=3。(这个per_page是默许的查询字符,当然你也得以用$config['query_string_segment']来自个儿设定卡塔尔(英语:State of Qatar)因而c、d中的格局常常是为localhost/news?&per_page=2可是都相符,没什么影响。get的per_page还是3 */ $config['first_link'] = '首页'; // 第一页显示$config['last_link'] = '末页'; // 最终意气风发页显示$config['next_link'] = '下大器晚成页 >'; // 下生龙活虎页展现$config['prev_link'] = '< 上一页'; // 上大器晚成页突显$config['cur_tag_open'] = ' '; // 当前页开头样式 $config['cur_tag_close'] = ''; /*当前页停止样式。这一个你能够和谐尝试一下。比方说作者想让当前页的分页数字样式赏心悦目一点,中蓝字体等。你就可以在current上加上css代码 */ $config['num_links'] = 2;// 当前线总指挥部是内外展现页码个数。意思正是说你当前页是第5页,那么你能够见见3、4、5、6、7页。 $config['uri_segment'] = 4; /*那几个是您在用a卡塔尔、b卡塔尔链接样式的时候,用来决断页页数。比方localhost/news/page/3 那一个uri_segment就要设定为3。localhost/news/title/page/3那几个就要设定为4 */ $config['use_page_numbers'] = TRUE; /*这一个正是a卡塔尔、b卡塔尔(英语:State of Qatar)的差异了。开启了,page就能够代表页数。false就能够代表记录数*/

 
$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;

刚开端在网络查资料的时候,有大多这种写法。

这两句判别了参数是还是不是为数字。防止不法字符输入。

版权声明:本文由bob体育app发布于编程,转载请注明出处:bob体育平台php防止sql注入之过滤分页参数