服务器端脚本的数据表身份验证

时间:2015-05-06 08:42:13

标签: php jquery mysql datatable

我正在使用jQuerydatables和服务器端脚本与php和mysql。我修改了这里的脚本:

https://legacy.datatables.net/examples/data_sources/server_side.html

我已经包含了一个包含整个脚本的if-else。

目标是仅在用户从我的数据库中发布有效令牌时才允许返回结果。

所以我设置了那个位。但我不确定如何处理错误消息给用户。

现在,当用户传入无效令牌时,我的网站(使用数据表)会引发错误无效的JSON响应。

我假设这是因为它期待返回的JSON中的iTotalRecords等。

我想知道是否有人知道如何实现这一目标。我还没有找到任何例子。

算法:

if (postedToken exists in db){
   return datatables JSON
}
else{
   return json in such a way that I can provide an alert to the user that their   session has expired
}

和数据表初始化:

"sAjaxSource": "mydatatablescript.php?token=<?php echo $token;?>

修改

我正在返回一个有效的JSON,但我遗漏了一些必须要求的参数,例如'iTotalRecords' => 0, 'iTotalDisplayRecords' => 0, 'aaData' => [], 'sEcho' => 0.

现在我没有收到问题中描述的错误消息。我看到有一个&#34; fnDrawCallback&#34;参数I可以包含在数据表初始化中。我怀疑在这里我可以检查我的消息参数并在必要时发出警报,但我不知道如何从该函数中访问JSON?

1 个答案:

答案 0 :(得分:1)

正如您已经看到的那样,如果您的客户端期望,您需要在任何情况下返回有效的json。

你可以使用例如:

之类的东西
if (postedToken exists in db){
   return datatables JSON
}
else{
   return json_encode(array('success': false, 'message': 'session has expired'));
}

您可能应该在调用成功时添加这些相同的键/参数,以便您可以轻松地检查您的javascript函数操作的结果。