Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用户友好的视频审查与锁定_Php_Jquery_Mysql_Session Timeout_Onbeforeunload - Fatal编程技术网

Php 用户友好的视频审查与锁定

Php 用户友好的视频审查与锁定,php,jquery,mysql,session-timeout,onbeforeunload,Php,Jquery,Mysql,Session Timeout,Onbeforeunload,我们有一个jquery/php/mysql系统,允许用户登录并查看由系统构建的在线观看视频。当用户开始查看视频时,视频被标记为这样。但现在,我们陷入了一个典型的基于浏览器的应用程序问题,即用户在没有完成审查的情况下离开或关闭浏览器。然后,该视频将进入一种无休止的状态,即不断被审查,但从未完成,也从未重新进入队列 我们有以下选择: 构建一个服务(我们已经有其他服务)来查找超出持续时间边界的审阅会话,并将它们重置回队列中 当用户登录时,在持续时间边界外重置审阅会话。基本上,如果用户锁定视频进行查看,

我们有一个jquery/php/mysql系统,允许用户登录并查看由系统构建的在线观看视频。当用户开始查看视频时,视频被标记为这样。但现在,我们陷入了一个典型的基于浏览器的应用程序问题,即用户在没有完成审查的情况下离开或关闭浏览器。然后,该视频将进入一种无休止的状态,即不断被审查,但从未完成,也从未重新进入队列

我们有以下选择:

  • 构建一个服务(我们已经有其他服务)来查找超出持续时间边界的审阅会话,并将它们重置回队列中
  • 当用户登录时,在持续时间边界外重置审阅会话。基本上,如果用户锁定视频进行查看,则下次登录时将解锁该视频
  • 向我提出的建议是使用php/apache会话长度,并在到期时重置任何挂起的审阅作业。我甚至不知道在哪里实现它,因为这是共享服务器上的一个项目,所以它不应该是apache配置,但重置机制需要知道数据库凭据才能重置它
  • 每个人都讨厌的最糟糕的解决方案是阻止用户使用javascript导航,并询问“你确定吗?!”

这个系统是由一些雇佣的评论员使用的,所以我在这里并不是与公众打交道,但我不能阻止用户共享登录名以更快地进行评议,这将取消上面的第二个选项,因为它将解锁其他人使用相同登录名查看的视频。

当一个人在单个页面上查看单个视频时。您可以捕获JavaScript卸载事件,该事件将在页面卸载且客户端离开页面时触发。然后,您可以更改该视频的状态,甚至显示一个对话框,让用户决定


也许乒乓球系统会有所帮助。在后面,通过ident进行绑定到视频的AJAX调用。当该活动停止时,用户停止。后台进程可以查找最新的ping,例如,一小时前,可以更改其状态。

当一个人在单个页面上查看单个视频时。您可以捕获JavaScript卸载事件,该事件将在页面卸载且客户端离开页面时触发。然后,您可以更改该视频的状态,甚至显示一个对话框,让用户决定


也许乒乓球系统会有所帮助。在后面,通过ident进行绑定到视频的AJAX调用。当该活动停止时,用户停止。后台进程可以查找最新的ping,例如,在一小时前,可以更改其状态。

有两个很好的选项不会对服务器造成负担。要么:

  • 每小时运行一次cron作业,查找超出持续时间边界的审阅会话。这具有对最终用户透明的优点。但是,如果不小心(假设用户在多个选项卡中操作),可能会终止活动会话

  • 防止用户使用JS导航。老实说,这是我会做的,因为用户正在查看视频(如果他们只是在观看视频,那会很糟糕,但因为他们知道他们应该在表演,所以没关系)。只要说如果你现在离开,审查就会取消,你确定吗


  • 老实说,我会选择第二种。所以使用它,它在这里工作得很好。并不是每个页面都有这样的评论,只是那些有活跃评论的页面…

    有两个不错的选择,不会让你的服务器负担过重。要么:

  • 每小时运行一次cron作业,查找超出持续时间边界的审阅会话。这具有对最终用户透明的优点。但是,如果不小心(假设用户在多个选项卡中操作),可能会终止活动会话

  • 防止用户使用JS导航。老实说,这是我会做的,因为用户正在查看视频(如果他们只是在观看视频,那会很糟糕,但因为他们知道他们应该在表演,所以没关系)。只要说如果你现在离开,审查就会取消,你确定吗


  • 老实说,我会选择第二种。所以使用它,它在这里工作得很好。并不是每一页都有评论,只是那些有积极评论的页面…

    你的第一个选择是你的最佳选择。当浏览器窗口打开时,页面上可以有一个javascript定时器更新视频的lastestActivity记录,这样你就不会进入需要太长时间的审查的角落,解锁器会过早地释放锁

    选项2存在问题,原因有几个,其中一些已经提到,但考虑到审阅者可能在几天内(假期?)不登录,将不必要地解锁太长时间的视频


    选项4(Javascript onBeforeUnload)在浏览器崩溃、操作系统崩溃或电源故障的常见情况下不适用。但这是你可以实现的附加功能。

    你的第一个选择是你的最佳选择。当浏览器窗口打开时,页面上可以有一个javascript定时器更新视频的lastestActivity记录,这样你就不会进入需要太长时间的审查的角落,解锁器会过早地释放锁

    选项2存在问题,原因有几个,其中一些已经提到,但考虑到审阅者可能在几天内(假期?)不登录,将不必要地解锁太长时间的视频


    选项4(Javascript onBeforeUnload)在浏览器崩溃、操作系统崩溃或电源故障的常见情况下不适用。但是,您还可以实现它。

    我使用的是运行良好的PHP System_守护进程Pear库,而不是cron。我正在考虑制作另一个守护进程来执行一些维护工作,让这个服务解锁会话