尝试将PHP会话保持12小时。
<?php
#required files
ini_set('session.cookie_lifetime', 60 * 60 * 12);
ini_set('session.gc-maxlifetime', 60 * 60 * 12 );
session_start();
$_SESSION['site_type'] = "2";
#more codes
?>
但是会议只持续了几分钟。
记住:即使该会话仍应处于活动状态
答案 0 :(得分:0)
您可以使用Cookies来实现此目的,方法是将会话数组保存在cookie中,并在页面加载时进行检索,或者将会话数据保存在服务器上的数据库中,并为其分配键并在Cookie中使用该键。
答案 1 :(得分:0)
session.gc-maxlifetime
is always higher then to cookie_lifetime
:
After using like:
ini_set('session.cookie_lifetime', 43200); // 43200 == 12 hours
ini_set('session.gc-maxlifetime', 100000);
After changing this, you can check the values by using:
echo phpinfo(); // search both values
Side Note:
Changing the configuration value by using script always problematical, i suggest you to change values from PHP.ini file as:
; 12 hour session cookie
session.cookie_lifetime = 43200
session.gc_maxlifetime = 100000
in PHP.ini,
session.cookie_lifetime
always set as 0 which means, session destroyed on browser close.
session.gc_maxlifetime
is the lifetime in seconds which default value: 1440 = 24 minutes
答案 2 :(得分:0)
如果您不能使用ini_set更改会话持续时间,那么您可能会考虑另一个想法,如果您可以运行PHP 7或更高版本,则可以使用以下approach:
if (session_status() == PHP_SESSION_NONE) {
if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
session_start(['cookie_lifetime' => 43200,]);
} else {
session_start();
}
}
通过这种方式,会话仅在12小时后过期。希望这会有所帮助。