我想开发一个可排序的表,当用户点击标题列时,表将通过JSON检索数据并显示它。为了使其工作,我必须将数据库列和数据库表名等信息与列一起放入。当用户点击它时,这些值将传递给服务器并检索更新的数据。
所以我的问题是,公开数据库表和表列名称是否安全?我一直在考虑使用php会话来存储这些信息,只显示链接到信息的会话ID。但问题是,如果我这样做,如果用户打开我的网站的多个标签,排序将无效。
你知道其他更好的方法吗?
感谢。
答案 0 :(得分:0)
Datatables是一个jQuery插件,可以完全按照您的要求执行操作,并提供许多不同的功能。它允许您按列对表进行排序。数据表的一些示例: http://datatables.net/examples/
您还可以使用ajax获取数据。看一下这个例子:http://datatables.net/release-datatables/examples/ajax/ajax.html
人们使用有超过2000万行的数据表,看看http://datatables.net/release-datatables/examples/data_sources/server_side.html
答案 1 :(得分:0)
我尽可能在GET / POST中尝试使用整数而不是基于文本的键,默认情况下你是安全的。
你真的不需要将密钥保存到会话中,只需将它们翻译成:
$columns = array(
'1' => 'UserID',
'2' => 'FirstName
...
)
$order = 1;
if (isset($_REQUEST['order'])) $order = (int) $_REQUEST['order'];
$orderName = $columns[$order];
//beware the bug of unset key
//the ugly sql
$sql = 'select .. from .. order by ' . $order;
并在html-grid中使用
<a href="?order=2"/>FirstName</a>
这将是我能想到的最简单,最安全的解决方案。
的问候,