【问题标题】:datatable authentication for server side scripting服务器端脚本的数据表身份验证
【发布时间】:2015-07-16 06:58:19
【问题描述】:

我正在使用 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' =&gt; 0, 'iTotalDisplayRecords' =&gt; 0, 'aaData' =&gt; [], 'sEcho' =&gt; 0.

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

【问题讨论】:

  • 为什么不只返回空 JSON?
  • @sitilge 我需要能够提示用户他们的会话已过期。这与他们在表中搜索没有结果的内容不同。即表格有一个过滤器选项,它使用提供的脚本并且不会返回任何结果,但这并不意味着用户必须注销并重新登录
  • 好吧,返回空json并在客户端用js/jquery解析响应。
  • @sitilge 请查看已编辑的问题

标签: php jquery mysql datatable


【解决方案1】:

正如您已经看到的,如果您的客户端期望返回有效的 json,则无论如何都需要返回。

你可以这样做,例如:

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

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

【讨论】:

  • 感谢您的回复。我想知道在我的客户端哪里可以提醒消息?脚本的处理是在数据表初始化中处理的,所以我不确定你提到的这个 javascript 函数应该放在哪里?
  • 我返回了一个有效的 JSON,但我缺少一些必须要求的参数,即 iTotalRecords => 0、iTotalDisplayRecords => 0、aaData => []、sEcho => 0。现在我是没有收到问题中描述的错误消息。我看到有一个“fnDrawCallback”参数可以包含在数据表初始化中。我怀疑在这里我可以检查我的消息参数并在必要时发出警报,但我只是不知道如何从该函数中访问 JSON。一旦我解决了最后一点,我会接受答案
猜你喜欢
  • 2018-02-26
  • 2011-11-04
  • 2016-02-25
  • 1970-01-01
  • 2020-04-22
  • 2012-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多