SESSION 的时间问题

浏览:1850 发布日期:2013/12/09 分类:求助交流 关键字: thinkphp session expire
我有一个注册页面里面的注册项比较多,以至于虚拟空间PHP环境php.ini里的session.gc_maxlifetime=1440可能不够用。现在想给session文件生命周期加时。可是又无权修改php.ini。新手不知道通过程序可不可以实现。
'SESSION_AUTO_START' => false之后,
IndexAction.class.php下的index方法改为如下:
public function index(){
session_start();
isset(${session_name()})?session_id(${session_name()}):${session_name()} = session_id();
setcookie(session_name(), ${session_name()}, time()+3600, '/'); // 储存SessionID到Cookie中
if($_SESSION['member']['purpose'] && $_SESSION['member']['uid'] && $_SESSION['member']['info_complete']){
redirect(__APP__.'/index.php/Message/index');
}else{
$purpose_link = M('purpose');
$purpose_list = $purpose_link->select();
$this->assign('vo_purpose_list',$purpose_list);
dropSession(); //common.php写的founction
$this->display();
}
}
改到这在display出的页面中的验证码检查都通不过了,就明$_SESSION['code']中的值就是不匹配了;另外在MessageAction.calss.php中的一个action中的session_id(${session_name()});
session_start();
echo $_SESSION['member']['purpose'] .'#'. $_SESSION['member']['uid'] .'#'. $_SESSION['member']['info_complete']; 根本全是空
这是怎么回事?要怎么写?

另一个问题就是tp里的session类里的session(array('name'=>'session_id','expire'=>3600));
这个作用是什么?
一个服务器中apach+php环境下应该是有很多站点,它们的session文件都 是存在同一个路径下,由同一个PHP管理,如若说上面的代码更改了php.ini中的session.gc_maxlifetime的值,那其它站点的session文件生命也都成3600s了是不是? 修改ini文件要重启服务,这个expire=3600s能应用到其它站点上? 如不能,session.gc_maxlifetime=1440的gc进程凭什么不把我站点的session文件杀掉?

小白的我晕了,求大虾开导开导我
最佳答案
评论( 相关
后面还有条评论,点击查看>>