codeigniter模型中的会话视图控制器

时间:2015-07-23 20:07:34

标签: php codeigniter session

登录成功后,重定向到主页。

在登录和查看页面中设置会话后,当我刷新同一页面然后重定向到登录页面时,原因是什么,请您为此问题提供解决方案?

控制器

public function login() {

    $email = $this->input->post('email');

    $password = md5($this->input->post('password'));

    $result = $this->search_model->login($email, $password);

    if($result !='') {

        $this->session->set_userdata('user_id', $email);
        $seid = $this->session->userdata('user_id');

    }

    if ($seid=='') {

        //echo ($seid);

        $this->index();

    } else {

        $this->view();

    }

} 


public function view() {

    $seid = $this->session->userdata('user_id');
    $data['result']=$this->search_model->getall($seid);
    $this->load->view('pagination_view',$data);

}

模型

function login($email, $password) {   
    $this->db->where("email", $email);
    $this->db->where("password", $password);
    $query=$this->db->get("tbl_reg");

    return $query->result_array();    
}

查看

<?php
if(!$this->session->userdata('user_id'))
{
    redirect(base_url().'search/login');
}
else
{
}
?>

2 个答案:

答案 0 :(得分:0)

两个问题,第一个架构,第二个可能导致你的问题。首先,您不应该在视图中重定向。这应该在加载主页(或其他页面)的控制器中。如果你不属于那里,你甚至不应该去看看。

第二个问题是if($ result!=&#39;&#39;)。这不会奏效。 $ result是一个数组。使用if(!empty($ result))或if(count($ result)!== 0)或类似的东西。

答案 1 :(得分:0)

On your pagination_view I would not use redirect instead place that on controller function

public function view() {

if ($this->session->userdata('user_id') == FALSE) {

    redirect(base_url().'search/login');

} else {

    $data['result'] = $this->search_model->getall($seid);

    $this->load->view('pagination_view',$data);

}

}