php如何在会话超时时执行函数
我有 $_SESSION
变量,其中包含用户登录用户名,并且设置了默认会话寿命(我认为是 24 分钟)。我想知道是否有办法在会话超时时执行函数。
我知道当用户重新加载页面并且会话变量已过期时我可以告诉页面执行该函数,但我正在尝试找出一种让服务器自行执行此操作的方法。有这样的方法吗?
我的推理:当用户登录时,我向数据库报告并更新“lastlogin”的用户记录。我想在用户单击注销或 $_SESSION
变量过期时更新“lastlogout”。
I have $_SESSION
variables containing user login username that have the default session life set ( 24 minutes I think ). I'm wondering if there is a way to execute a function on session timeout.
I know I can tell the page to execute the function when the user reloads the page and the session variable has expired but I'm trying to figure out a way for the server to do this by itself. Is there such a method?
My Reasoning: When the user logs in I report to my database and update the user record for 'lastlogin'. I want to update 'lastlogout' when the user clicks logout or when the $_SESSION
variable expires.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试在关闭和GC(垃圾集电极)。
Try settings callbacks in session_set_save_handler on close and gc (garbage collector).
您可以通过以下方式使用 javascript 来实现此目的:
然后,当超时期限耗尽时,您的
timeout.php
将被自动调用。在此脚本中,此时 $_SESSION 内容已丢失(垃圾收集) - 您可以调用数据库来更新用户记录。You can use javascript for this in about this way:
Then your
timeout.php
will be called automatically when the timeout period is exhausted. In this script, by this time, the $_SESSION content is already lost (garbage-collected) - and you can make your database calls to update user's record.