我不知道这是否可能,或者即使它存在,但我很好奇地发现。我不想提出错误的想法,并且在给出例子之前描述我想要实现的目标 - 所以我会直接进入它。
据我所知,网站上的代码只有在某人访问这些网站时才会执行。如果没有人访问这些网站,代码就坐在那里。如果没有人使用它们,代码没有理由运行,对吗?
现在我要提出的建议可能听起来很荒谬,但请听我说。我不知道是否有办法做到这一点,所以我只想问。有没有办法在没有人访问网站的情况下运行这些代码?
现在我知道你们中的一些人,“嗯?他在说什么?如果没有人在网站上,你为什么甚至想要运行代码呢?这根本就没有意义,”所以我要去试图证明为什么我想要这样的东西是可能的。
例如,如果您要创建一个脚本,以便在用户保持非活动状态一段时间后自动注销用户,则需要检查他们是否在最后一次处于活动状态(时间量)在记录它们之前等待)。您可以使用AJAX检查它们是否在最后一次处于活动状态(在将其注销之前等待的时间)。如果他们导航或刷新页面,那么它将重置计数器,让你知道他们在最后一次活动(在登出之前等待的时间)。但是,如果他们什么都不做(在退出之前等待的时间),他们将自动退出。
如果他们关闭浏览器,或退出使用AJAX监控其进度的选项卡,它将不再监控他们的进度,因此他们的计数器将不会更新,因此您将不知道他们是否已经处于活动状态或不。如果他们关闭标签页或浏览器,您不能只注销它们,因为如果他们有多个标签页或浏览器打开了怎么办?然后你只想在关闭所有这些时将它们记录下来。
我有其他例子,但这是它的要点。有没有办法在没有用户访问网站的情况下在网站上执行代码?谢谢。
答案 0 :(得分:4)
您正在寻找cron jobs
。它们基本上是在设定时间运行的预定作业。一个cron作业可以运行各种脚本,包括PHP脚本。
这样的脚本是否可以轻松清除过期的会话,我不知道。它可能取决于您存储会话的方式。
在网站上实施它可能同样容易。如果存储用户的上一个活动时间戳,则只需检查新请求是否该时间戳太旧,如果是,则删除会话并重定向到登录页面。这样,用户正式保持登录状态,直到他们下一次请求。
您可以选择删除PHP记住的旧会话。请参阅相关问题:Cleanup PHP session files。
答案 1 :(得分:1)
一种方法是您可以使用CRON jobs在计时器上运行PHP脚本。 这些工作通常每x小时,分钟或数天重复一次。
我不确定你提供的例子。