【问题标题】:How to expire sessions after a certain amount of time in PHP?如何在 PHP 中经过一定时间后使会话过期?
【发布时间】:2010-07-18 20:26:56
【问题描述】:

当我调用某个函数时,我需要销毁所有活动会话。此函数在调用时需要销毁所有会话,而不是立即,而是在 30 秒后。即使用户在 30 秒之前离开了调用会话的页面,他的浏览器仍应清除所有会话,因此当他返回该站点时,这些会话都不会处于活动状态。

这可能吗?如果是这样,人们将如何编写这样一个函数?

编辑

至于我为什么需要这个,我有一个购物车脚本,提交后会将用户带到贝宝处理付款。如果我在单击该付款表单上的提交按钮时销毁所有会话,我无法将所有表单数据传递到贝宝。如果我不销毁所有会话,当用户返回该站点时,购物车仍然会装满他之前购买的内容。

当用户回来时,我需要购物车是空的。我想 30 秒会给用户足够的时间去到贝宝页面,此时我的购物车脚本已经将所有必要的信息发送到贝宝。然后销毁所有会话是安全的,无需担心服务中断。

所以我需要一种计时器脚本,它可以在服务器端运行,即使用户不再在该页面上也会破坏会话。

【问题讨论】:

    标签: php session


    【解决方案1】:

    【讨论】:

    • 谢谢,但这不是我需要的,即使用户空闲我也不希望会话被破坏,只有在某种情况下我希望是这种情况,并且我已经编写了在该条件下执行函数的逻辑。现在我只需要函数的内容:P
    • 使用javascript检查以前的url,然后调用你的代码来执行会话终止,然后重新加载页面。那么你就完全不用担心计时器了。
    【解决方案2】:

    好的,别管我的 sleep() 方法了。

    在会话中设置一个标志,然后将它们发送到贝宝。如果已设置,请检查此标志并清除会话/购物车。

    【讨论】:

      猜你喜欢
      • 2015-09-16
      • 2018-05-25
      • 1970-01-01
      • 2013-07-15
      • 2016-11-11
      • 2013-06-15
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多