1

在每个页面上,我都看到使用 null 用户数据生成了新会话

关于模型构造函数

$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 库工作正常.. 我已经使用过

4

3 回答 3

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

于 2013-09-26T15:05:10.470 回答
1

编辑/application/config/config.php并设置 cookie 域变量

$config['cookie_domain']    = ".yourdomain.com";

它会起作用的!

.yourdomain.com 使 cookie 在整个域及其子域中可用。

于 2013-09-27T07:30:40.553 回答
0

我遇到了同样的问题,我已经搜索了很多页面。我发现更改 sess_cookie_name 可以解决问题(新会话生成问题)

$config['sess_cookie_name'] = 'somenewname'

于 2017-10-26T08:25:30.590 回答