Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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_Javascript_Jquery_Session_Login - Fatal编程技术网

Php 处理独立于客户端的用户日志输入

Php 处理独立于客户端的用户日志输入,php,javascript,jquery,session,login,Php,Javascript,Jquery,Session,Login,假设有一个网页只有在单独的页面上输入用户名和密码才能访问。此网页除了正常功能外,还应记录用户登录和注销的时间 我目前拥有的系统是一个JavaScript解决方案。在“提交”按钮上记录成功单击事件的登录功能和在“注销”按钮上记录注销的功能 这里显然有一些问题。如果用户关闭浏览器怎么办?注销不会被记录。如果用户失去互联网连接怎么办?等等。我可以考虑一些用例场景,其中客户端处理程序可能会出错。我需要一些受保护的东西,一些服务器端的东西在没有客户端缺陷的情况下,你们推荐什么方法来完成上述任务?是否存在可

假设有一个网页只有在单独的页面上输入用户名和密码才能访问。此网页除了正常功能外,还应记录用户登录和注销的时间

我目前拥有的系统是一个JavaScript解决方案。在“提交”按钮上记录成功单击事件的登录功能和在“注销”按钮上记录注销的功能


这里显然有一些问题。如果用户关闭浏览器怎么办?注销不会被记录。如果用户失去互联网连接怎么办?等等。我可以考虑一些用例场景,其中客户端处理程序可能会出错。我需要一些受保护的东西,一些服务器端的东西在没有客户端缺陷的情况下,你们推荐什么方法来完成上述任务?是否存在可行的客户端方法?

使用websocket解决方案,当新用户连接或断开连接时,您可以在服务器端看到。这种解决方案唯一的“缺点”是,如果用户转到另一个页面(即使是在同一个域中),那么就像用户断开连接一样。然后,它将“重新检查”新页面中是否存在跟踪用户登录的相同websocket解决方案

您可以通过使用“类似ajax”的导航来避免这种情况,这样用户就不会离开一个页面

有一些很酷的API来实现websocket,比如Pusher


即使在服务器端实现,问题仍然存在;您无法判断用户何时停止在应用程序中执行任何操作。他们通常只会关闭浏览器而无法注销。如果会话id过期时间很短呢。只有页面上的javascript代码才能使其保持活动状态。如果代码停止,则会话id将过期?首先-不存在任何可行的客户端方法扫描数据库以查找上次活动的时间戳(如果很长时间假定已注销)。在您的系统中,关闭浏览器窗口是否与注销相同?如果是这样,那么您可以使用客户端。看看