从具有两个不同会话的网站中的会话访问信息

时间:2016-02-22 21:56:40

标签: codeigniter session

我的网站在公共网站和管理区域有两个限制区域。我试图按照一些说明在整个网站上进行多次会话,但我在访问和检索他们的信息方面遇到了一些问题。

以下是两个页面中的login方法。首先来自行政区:

public function login()
{
    if ($this->Admin_model->find_credentials()) {
        $data['user_email'] = $this->input->post('email');
        $this->session->set_userdata('auto', $data);

        redirect('/admin/dashboard', 'refresh');
    } else {
        $this->session->set_flashdata('message', 'Desculpe, credenciais inválidas');
        redirect('/admin/entrar');
    }
}

然后,公共网站的管理区域:

public function login()
{
    if ($this->Usuarios_model->find_credentials()) {
        $email = $this->input->post('email');

        if ($this->Usuarios_model->is_active($email)) {
            $data = array();
            $data['nome'] = $this->Usuarios_model->find_col_by_email('nome_razao_social', $email);
            $data['email'] = $email;
            $data['tipo_usuario'] = $this->Usuarios_model->find_col_by_email('tipo_usuario', $email);
            $data['id_usuario'] = $this->Usuarios_model->find_col_by_email('id', $email);

            $this->session->set_userdata('auto', $data);
            $this->session->set_flashdata('message', 'Bem-vindo!');

            redirect('/usuario/painel');
        } else {
            $this->session->set_flashdata('message', 'Por favor, ative o seu cadastro');
            redirect('/');
        }
    } else {
        $this->session->set_flashdata('message', 'Desculpe, credenciais inválidas');
        redirect('/');
    }
}

对于每个新会议,我都会为它确定一个名称。现在,我调用会话值的每个点,我必须指定我想要的会话的名称,但是在我尝试登录后出现错误消息:

  

消息:数组到字符串转换

此错误指向我的模型的第161行,其中包含以下代码:

public function find_details($email = null, $id = null, $id_carro = null)
{
    $this->db
        ->select(
            'usuario.*,' .
            'estado.nome_estado AS uf,' . 
            'cidade.nome_cidade AS cidade'
        )
        ->join('cidade', 'cidade.id = usuario.id_cidade')
        ->join('estado', 'estado.id = usuario.id_estado');

    if ($email) {$this->db->where('usuario.email', $email);} // 161
    ...
}

要使多个会话正常工作,我需要做些什么?

1 个答案:

答案 0 :(得分:0)

好的。对我而言,解决方案是回应特定会话价值的另一种方式:

$this->session->userdata('foo')['bar']

其中foo是会话名称,在创建新会话时指定。就我而言,一个很好的例子可以是$this->session->userdata('auto')['email'];