Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.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
移动浏览器的Javascript/PHP页面超时_Php_Javascript_Html - Fatal编程技术网

移动浏览器的Javascript/PHP页面超时

移动浏览器的Javascript/PHP页面超时,php,javascript,html,Php,Javascript,Html,我正在开发一个基于移动设备的web应用程序,它主要由AJAX和Javascript支持。要访问主页,登录页面通过post将数据发送到主页,在主页上使用mySQL查询进行检查。如果登录出现问题,它将返回登录页面,否则将继续返回主页。我正试图找到实现超时的最佳方法,以强制用户在超过阈值后重新进行身份验证 一切都是通过jQuery和AJAX从主页面控制的,因此它们在任何时候都不会离开main.html。我的问题是移动浏览器如何处理最小化或关闭?例如,我在Android设备上使用Chrome浏览器,并登

我正在开发一个基于移动设备的web应用程序,它主要由AJAX和Javascript支持。要访问主页,登录页面通过post将数据发送到主页,在主页上使用mySQL查询进行检查。如果登录出现问题,它将返回登录页面,否则将继续返回主页。我正试图找到实现超时的最佳方法,以强制用户在超过阈值后重新进行身份验证


一切都是通过jQuery和AJAX从主页面控制的,因此它们在任何时候都不会离开main.html。我的问题是移动浏览器如何处理最小化或关闭?例如,我在Android设备上使用Chrome浏览器,并登录到web应用程序。我在手机上执行一些操作,然后最小化浏览器以执行其他操作。3个小时后,我打开了Chrome,页面上的标签仍在,然后继续我之前在页面上做的事情。我怎样才能截获这些信息,并在那之后强制他们返回登录页面?我曾考虑将登录时间存储在cookie中,并在每次调用函数时对其进行检查,但这似乎不是很优雅。

使用会话。不要用饼干。我想你错过了一些关于PHP的问题。

Cookies总是可以更改的

如果您使用的是PHP,这应该非常简单,只需跟踪最后执行的操作:

$_SESSION['last_action'] = time();
然后,当服务器收到Ajax请求时,检查该值。如果时间太长,强制用户再次登录,那么响应将返回一些值,指示您需要再次显示登录屏幕

我假设您现在了解了会话的工作方式,并开始了会话等


如果您不介意的话,您也可以在会话上设置过期日期,但是。

为什么过期的会话cookie不优雅?好了,除了套接字之外没有其他方法,但是你已经在使用ajax了。你在考虑cookies。。。你试过用什么东西吗?你是会议负责人吗?你如何在非移动浏览器中处理这种情况?我建议使用cookies,这样数据库就能更好地管理它,会话也可以正常工作。我对会话的工作原理有一个大致的了解。问题是我知道Javascript和PHP是两种完全不同的东西,我不知道如何将它们连接在一起。因为它们根本没有离开主页面,所以我不能只使用if语句来查看页面加载时会话变量是否存在。我以前从来没有在桌面站点上这样做过,这是我第一次尝试这样做?例如:process_menu.php将启动会话;如果time<$\u SESSION['login\u time']+60{//Process}或者{返回重定向调用},我会假设您的每个页面都有一种方法来评估用户是否已登录,至少他们应该这样做。那么它就应该发生了。