在每个页面上,我看到使用null userdata生成新会话
关于模型构造函数
$this->config->set_item('sess_table_name', 'xx_sessions');
因为我想将此会话存储在另一个表中,因为另一个会话表正用于另一个登录活动
登录功能
function login($username,$password)
{
$this->db->where('login',$username);
$this->db->where('pass',$password);
$q=$this->db->get('prof');
// print $this->db->last_query();
if($this->db->count_all_results())
{
$arr=$q->row();
// creating the session
$this->session->set_userdata('login',$arr->id);
$this->session->set_userdata('prof',$arr->profile_id);
// print_r( $arr);
}
else
return FALSE;
}
此登录功能在模型上。登录并生成会话后,页面重定向到另一个页面,在该页面上,我看到会话构建没有任何问题但是当我移动到另一个页面时,会话与用户数据一起丢失。
我使用以下功能检查会话数据
function print_session()
{
print_r( $this->session->all_userdata());
}
我哪里错了? Tank_auth库和ion_auth库工作正常..我已经使用了
答案 0 :(得分:2)
将session
库名称放入application/config/autoload.php:
$autoload['libraries'] = array('session');
然后它会在每个控制器和应用程序的任何位置自动提供,您可以从任何地方获取会话数据:
$session_id = $this->session->userdata('session_id');
如果您不想自动加载会话库,则必须在控制器构造函数中手动初始化Session类,使用$this->load->library
函数:
$this->load->library('session');
详情请看:http://ellislab.com/codeigniter/user-guide/libraries/sessions.html
答案 1 :(得分:1)
修改 /application/config/config.php 并设置Cookie域变量
$config['cookie_domain'] = ".yourdomain.com";
它会起作用!
.yourdomain.com使Cookie在整个域及其子域中可用。
答案 2 :(得分:0)
我遇到了同样的问题,我搜索了很多页面。 我发现更改sess_cookie_name可以解决问题(新会话生成问题)
$ config ['sess_cookie_name'] ='somenewname'