关于session存储的问题

以前通过浏览器生成的session_id都是变化的
如果我设置为固定的session_id的话
然后去存储基于这个id的session键值

我的测试是可以避开切换浏览器的初始化,可以记录用户的某个行为操作次数

这里有个问题,我想让session_id每天下的内容每天清理一次,
就是过期操作
以前都是通过过期cookie中的session_id的时间

现在不依赖cookie,我怎么能过期session,清理内存呢
以下是测试代码:

  
session_id("test");//这里我想固定id
session_start();
$_SESSION['num']=$_SESSION['num']?$_SESSION['num']:$_SESSION['num']=1;

$_SESSION['num']++;
//setcookie('PHPSESSID', $PHPSESSID, time()+3156000);
echo $_SESSION['num'];
Geo5
Geo5
463
编辑于2012-02-17
评论 (0)链接2012-02-17 

1.设置Session的过期时间session.gc_maxlifetime
2.设置Cookie的过期时间session.cookie_lifetime
3.在session值中存入初始化时间值,由程序判断是否过期,过期删掉

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-02-17

不知道这样行不行,session过期时间需要设置哇!

  
<?php
session_id("test");//这里我想固定id

session_start();
//第一次的时候记录一下时间,之后判断时间是否过期,
//过期的话就清理一下(测试的过期时间是5秒)
if(!isset($_SESSION['last_access'])){
$_SESSION['last_access'] = time();
}elseif((time()-$_SESSION['last_access'])>5)
{
session_destroy();
}
//
$_SESSION['num']=$_SESSION['num']?$_SESSION['num']:$_SESSION['num']=1;

$_SESSION['num']++;
//setcookie('PHPSESSID', $PHPSESSID, time()+3156000);
echo $_SESSION['num'];

?>

推荐一篇文章看看
http://www.perfgeeks.com/?p=232

小飞
小飞
6842
编辑于 2012-03-02
该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-02-17

将Session的存活时间设为一天

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (1)链接 • 2012-02-22
  • 0 支持
    你可以存上面的答案看到,,这个对我来说不管用啊,我不知道你有测试没有 – 崔苔吾 2012-02-22
  • 社区维基

    0 票

  • soooldier
    1011

将Session的存活时间设为一天

单这么做是没用的,因为php运行session的gc是一个概率事件,具体参考php.ini里session.gc_probability和session.gc_divisor设置。

许磊
编辑于 2012-02-27
该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-02-23
德问是一个专业的编程问答社区,请 登录注册 后再提交答案