PHP 会话即将超时
PHP Session Timing Out Soon
我正在开发一个 PHP 基于角色的应用程序,我也必须在其中维护会话。一旦用户登录,他将被重定向到我管理会话的界面,因为用户 ID 和密码将与角色匹配。如果不匹配,他将被重定向到如下登录。
if (!isset($_SESSION['user_login']))
{
header("Location:index.php");
}
else
{
if((time()-$_SESSION['expire']) > 365*24*60*60)
{
session_destroy();
}
else{
//user would stay logged in
}
}
这也与数据table交互,其中只要会话超时,它就会为 table 抛出错误,即:
datatables warning table id= - requested unknown parameter '0' for row 0 column 0 tn/4
我想如果我增加会话超时,这不会是一个负担。我想尽一切办法,但都以失败告终。
- 增加php.inisession.gc_maxlifetime
- 按页面覆盖 php.ini ini_set('session.gc_maxlifetime',
31536000)
- 编辑 MultiPHP INI 编辑器
除了本地之外,似乎没有什么可以工作的。请指教
更新(会话和 cookie 是如何从登录构建的):
if(!empty($_POST["remember_me"]))
{
setcookie ("user", $_POST["userid"], (time() + (10 * 365 * 24 * 60 * 60)));
setcookie ("pass", $_POST["password"], (time() + (10 * 365 * 24 * 60 * 60)));
}
else
{
if(isset($_COOKIE["userid"]))
{
setcookie ("userid", "");
}
if(isset($_COOKIE["password"]))
{
setcookie ("password", "");
}
if (!session_id()) session_start();
$_SESSION['user_login'] = $userid;
$_SESSION['expire'] = time();
header('Location: user_interface.php');
经过多次尝试,我们必须将会话路径更改为 .htaccess 上的“/tmp”。如果应用程序托管在共享主机中,这就是它的工作方式。
我正在开发一个 PHP 基于角色的应用程序,我也必须在其中维护会话。一旦用户登录,他将被重定向到我管理会话的界面,因为用户 ID 和密码将与角色匹配。如果不匹配,他将被重定向到如下登录。
if (!isset($_SESSION['user_login']))
{
header("Location:index.php");
}
else
{
if((time()-$_SESSION['expire']) > 365*24*60*60)
{
session_destroy();
}
else{
//user would stay logged in
}
}
这也与数据table交互,其中只要会话超时,它就会为 table 抛出错误,即:
datatables warning table id= - requested unknown parameter '0' for row 0 column 0 tn/4
我想如果我增加会话超时,这不会是一个负担。我想尽一切办法,但都以失败告终。
- 增加php.inisession.gc_maxlifetime
- 按页面覆盖 php.ini ini_set('session.gc_maxlifetime', 31536000)
- 编辑 MultiPHP INI 编辑器
除了本地之外,似乎没有什么可以工作的。请指教
更新(会话和 cookie 是如何从登录构建的):
if(!empty($_POST["remember_me"]))
{
setcookie ("user", $_POST["userid"], (time() + (10 * 365 * 24 * 60 * 60)));
setcookie ("pass", $_POST["password"], (time() + (10 * 365 * 24 * 60 * 60)));
}
else
{
if(isset($_COOKIE["userid"]))
{
setcookie ("userid", "");
}
if(isset($_COOKIE["password"]))
{
setcookie ("password", "");
}
if (!session_id()) session_start();
$_SESSION['user_login'] = $userid;
$_SESSION['expire'] = time();
header('Location: user_interface.php');
经过多次尝试,我们必须将会话路径更改为 .htaccess 上的“/tmp”。如果应用程序托管在共享主机中,这就是它的工作方式。