我想让会话保持三天,每当他们访问该页面时,它会再次更新三天。基本上如果他们三天没有访问该网站,他们的会话就会减少。
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上,它根据SQL中存在的验证设置$_SESSION
数据。
也许这是WAMP的一个功能,但每当我关闭浏览器时,尽管更改了php.ini参数,但会话终止。我可能在top.php的第1行使用了错误的位吗?
答案 0 :(得分:2)
使用cookies,我怀疑你可以控制你的会话生命周期。
您需要做的基本上是存储cookie中所需的会话变量,并且在用户进入站点时,如果未设置会话变量,请检查是否存在包含这些变量的cookie并将cookie中的数据加载到会话中。或者你可以从cookies中访问它们
如果您拥有不想存储在Cookie中的敏感数据。您可以将此数据存储在服务器上的某种形式的持久存储中(数据库或文件,数据库更可取),并将此数据的ID存储在用户端的cookie中。当用户访问您的站点时,从cookie中获取ID,然后加载数据。
答案 1 :(得分:0)
我刚刚发现:
ini_set('session.cookie_lifetime', 60*60*24*3);
ini_set('session.gc_maxlifetime', 60*60*24*3);
session_start();
......工作正常。即使浏览器关闭,它也会使会话保持活跃状态。