首页 文章

Codeigniter会话在每个页面上生成新会话

提问于
浏览
1

在每个页面上,我看到使用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 回答

  • 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

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

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

    它会工作!

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

  • 0

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

    $ config ['sess_cookie_name'] ='somenewname'

相关问题