我在codeigniter中使用ajax分页,并从以下链接获取代码
https://makitweb.com/how-to-create-ajax-pagination-in-codeigniter/
演示链接在这里
https://makitweb.com/demo/codeigniter_pagination_ajax/
该代码工作正常。它使用对控制器的ajax调用,并且控制器以json格式返回数据。
但是我发现了它的一个缺陷,并且在Google以及这个平台上搜索了很多东西,现在问专家如何摆脱它。
缺点是,当我复制任何页面的链接而不是单击页面号时。并分别打开url,然后显示表的整个架构以及表中的数据,这是有人可以窃取整个数据的安全漏洞,示例链接在此处
https://makitweb.com/demo/codeigniter_pagination_ajax/index.php/User/loadRecord/3
视图在这里
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<style type="text/css">
a {
padding-left: 5px;
padding-right: 5px;
margin-left: 5px;
margin-right: 5px;
}
</style>
</head>
<body>
<!-- Posts List -->
<table border='1' width='100%' style='border-collapse: collapse;' id='postsList'>
<thead>
<tr>
<th>S.no</th>
<th>Title</th>
<th>Content</th>
</tr>
</thead>
<tbody></tbody>
</table>
<!-- Paginate -->
<div style='margin-top: 10px;' id='pagination'></div>
<!-- Script -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type='text/javascript'>
$(document).ready(function(){
// Detect pagination click
$('#pagination').on('click','a',function(e){
e.preventDefault();
var pageno = $(this).attr('data-ci-pagination-page');
loadPagination(pageno);
});
loadPagination(0);
// Load pagination
function loadPagination(pagno){
$.ajax({
url: '<?=base_url()?>index.php/User/loadRecord/'+pagno,
type: 'get',
dataType: 'json',
success: function(response){
$('#pagination').html(response.pagination);
createTable(response.result,response.row);
}
});
}
// Create table list
function createTable(result,sno){
sno = Number(sno);
$('#postsList tbody').empty();
for(index in result){
var id = result[index].id;
var title = result[index].title;
var content = result[index].content;
content = content.substr(0, 60) + " ...";
var link = result[index].link;
sno+=1;
var tr = "<tr>";
tr += "<td>"+ sno +"</td>";
tr += "<td><a href='"+ link +"' target='_blank' >"+ title +"</a></td>";
tr += "<td>"+ content +"</td>";
tr += "</tr>";
$('#postsList tbody').append(tr);
}
}
});
</script>
</body>
</html>