我的网站在公共网站和管理区域有两个限制区域。我试图按照一些说明在整个网站上进行多次会话,但我在访问和检索他们的信息方面遇到了一些问题。
以下是两个页面中的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
...
}
要使多个会话正常工作,我需要做些什么?
答案 0 :(得分:0)
好的。对我而言,解决方案是回应特定会话价值的另一种方式:
$this->session->userdata('foo')['bar']
。
其中foo
是会话名称,在创建新会话时指定。就我而言,一个很好的例子可以是$this->session->userdata('auto')['email']
;