0

我想让会话保持三天,每当他们访问该页面时,它都会再次更新三天。基本上,如果他们三天不访问该网站,他们的会话就会下降。

ini_set('session.cookie_lifetime',60*60*24*3); //saw on a similar SO question
session_start();

上面的代码位于 top.php 的顶部,该文件include()在每个页面上都被编辑。

$_SESSION["username"] = $username;
$_SESSION["password"] = $hashedpass;
$_SESSION["authtoken"] = $authkey; //authentication key

以上是login.php,它$_SESSION根据SQL 中存在的验证设置数据。

也许这是 WAMP 的一个功能,但是每当我关闭浏览器时,尽管更改了 php.ini 参数,会话也会终止。我可能在 top.php 的第 1 行使用了错误的位吗?

4

2 回答 2

2

使用cookie,我怀疑你可以控制你的会话生命周期。

您需要做的基本上是将所需的会话变量存储在 cookie 中,并且在用户进入站点时,如果未设置会话变量,请检查是否存在带有这些变量的 cookie,并将 cookie 中的数据加载到会话中。或者您可以从 cookie 中访问它们

如果您有不想存储在 cookie 中的敏感数据。您可以将此数据以某种形式的持久存储存储在您的服务器上(数据库或文件,最好使用数据库),并将此数据的 ID 存储在用户端的 cookie 中。当用户访问您的站点时,从 cookie 中获取 ID,然后加载数据。

于 2013-08-31T21:19:37.283 回答
0

我刚刚发现:

ini_set('session.cookie_lifetime', 60*60*24*3);
ini_set('session.gc_maxlifetime', 60*60*24*3);
session_start();

...工作正常。即使浏览器关闭,它也会使会话保持活动状态。

于 2013-08-31T21:26:21.180 回答