如何在php或processmaker(BPM)中执行会话超时?
我提到了大多数论坛和wiki,但这并没有解决我的问题。
请告诉我。
答案 0 :(得分:2)
在ProcessMaker上,你必须在 php.ini 上更改以下参数才能修改会话超时
这可以从版本 2.5RC1(候选发布版)开始,可以在ProcessMaker sourceforge page上下载
希望这也有助于你。
答案 1 :(得分:1)
存储用户上次发出请求的时间
<?php
$_SESSION['timeout'] = time();
?>
在后续请求中,检查他们提前多久提出请求(本例中为10分钟)
<?php
if ($_SESSION['timeout'] + 10 * 60 < time()) {
// session timed out
} else {
// session ok
}
?>
摘自here
答案 2 :(得分:1)
答案 3 :(得分:0)
在php脚本的开头包含此代码:
<?php
if(!isset($_SESSION)){@session_start();}
if (isset($_SESSION['timeout']) and $_SESSION['timeout'] + 1800 < time()) {
session_unset();
session_destroy();
} else {
$_SESSION['timeout'] = time();
}
?>
第一行检查是否有会话,如果没有会话则创建会话。
session_start()前面的@符号用于禁止session_start()可能抛出的任何警告或通知。对此代码没有任何重要意义,您可以删除它。
下一行检查$ _SESSION [&#39; timeout&#39;]变量是否存在,以及它是否包含从当前时间开始超过30分钟的值。
第一次运行脚本时它不存在,所以如果在不存在时检查它的值,如果在php.ini文件中启用了它,它会给你一个通知或警告信息。
如果它不存在,我们跳到else并创建它,然后我们添加当前时间()。
现在1800的值是30分钟(秒)。 30 * 60是另一种常见的写入方式,使其更易于阅读。
如果if为true,则用户已处于非活动状态超过30分钟。如果它少于30分钟或第一次运行脚本,它将跳转到else并更新超时变量。