'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_li
$purpose_list = $purpose_li
$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文件杀掉?
小白的我晕了,求大虾开导开导我
最佳答案