【问题标题】:How to print session time remaining in php?如何在php中打印剩余的会话时间?
【发布时间】:2017-11-29 06:14:48
【问题描述】:

我有一个 PHP 程序,我想在屏幕上打印用户在会话到期之前还有多少时间。我希望它在他们重新加载页面时更新。

例如这样的简单消息:

您的会话将在 60 分钟后到期

...页面重新加载...

您的会话将在 59 分钟后到期

另外,如何设置超时值?

【问题讨论】:

  • 您指的是哪种会话? $_SESSION 有一个超时,但是这个计数器会在每次页面刷新/ajax 调用时重置,或者它是关于你自己的一些登录?
  • 将会话开始的时间存储在 cookie 中并从现在减去

标签: php session session-timeout


【解决方案1】:

您可以设置一个带有 UNIX 时间的 cookie 并与之进行比较。

setcookie("start", time(), time ()+3600); // saves a cookie with current UNIX time for one hour

在此处阅读 setcookie http://php.net/manual/en/function.setcookie.php
如果您以前从未使用过它,请务必仔细阅读开头。

然后比较时间:

If (isset($_COOKIE["start"]) and $_COOKIE["start"]+3600<time()){
    echo (time()-$_COOKIE["start"])/60 . " minutes left";
}Else{
    Echo "times up";
}

【讨论】:

  • 这似乎是对的,但是当我测试时,当我重新加载页面时它总是打印'times up'。
  • 实际上不行。我只是在同一页面上设置了 cookie。干杯。
  • 如果您在同一页面上设置 cookie,只需先执行 if(isset(cookie)) 以确保您不给用户新的 60 分钟
猜你喜欢
  • 2022-01-18
  • 2016-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
  • 1970-01-01
  • 2022-09-23
相关资源
最近更新 更多