在每个页面上,我看到使用null userdata生成新会话
On model constructor
$this->config->set_item('sess_table_name', 'xx_sessions');
因为我想将此会话存储在另一个表中,因为另一个会话表正用于另一个登录活动
Login function
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;
}
此登录功能在模型上 . 登录并生成会话后,页面重定向到另一个页面,在该页面上,我看到会话构建没有任何问题但是当我移动到另一个页面时,会话与用户数据一起丢失 .
I use the following function to check session data
function print_session()
{
print_r( $this->session->all_userdata());
}
哪里我错了? Tank_auth库和ion_auth库工作得很好..我已经用过了
3 回答
将
session
库名称放入自动装带器配置中,在application/config/autoload.php:
中然后它可以在每个控制器和应用程序的任何位置自动使用,您可以从任何地方获取会话数据:
如果您不想自动加载会话库,则必须在控制器构造函数中手动初始化Session类,使用
$this->load->library
函数:详情请看:http://ellislab.com/codeigniter/user-guide/libraries/sessions.html
编辑 /application/config/config.php 并设置cookie域变量
它会工作!
.yourdomain.com使cookie在整个域及其子域中可用 .
我遇到了同样的问题,我搜索了很多页面 . 我发现更改sess_cookie_name解决了问题(新会话生成问题)
$ config ['sess_cookie_name'] ='somenewname'