php 页面销毁事件,php – 关于会话结束事件

我有一个Symfony2项目,在每个会话开始时,我在服务器上创建一个文件夹,用户可以在其中操作和放置他的文件.

我希望能够在关闭浏览器时删除用户的文件夹

(或任何其他相关事件,可能会检查会话超时?).

我怎样才能做到这一点?

PS:我已经在某处读过java有一个sessionHandler,您可以在其中编写函数代码.

在php(Symfony2具体)中是否有类似的东西?

解决方法:

首先,如果浏览器被HTML和PHP关闭,则无法识别.您需要ajax和常量轮询或某种事情才能知道浏览器仍然存在.可能,但有点复杂,主要是因为如果浏览器仍然存在(会话有效),但几分钟没有互联网连接(笔记本电脑,糟糕的wlan,等等),你可能会遇到麻烦.

您不能拥有在PHP中为您执行此操作的sessionHandler,因为从服务器检索脚本时会执行PHP.执行完最后一行后,它会停止.如果没有人再次检索脚本,它应该怎么做?重启脚本以检查会话是否仍然存在没有魔力.

那么该怎么办?首先,您希望通过使用数据库会话存储或类似的方式使会话可见.然后你需要一个cronjob启动一个脚本,查找所有会话并决定现在哪一个是无效的,然后用它做一些事情(比如删除文件夹). Symfony可以提供帮助,因为它允许您以在数据库中存储会话的方式配置会话管理(请参阅here),以及创建可以通过crontab执行的任务(请参阅here).

逻辑部分,包含决定哪个会话无效以及如何处理此会话)是您的一部分.但是,当你在数据库中获得会话时间和值时,它应该不是很难.

标签:php,session,symfony

来源: https://codeday.me/bug/20190626/1291688.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值