【问题标题】:Session in codeigniter model View Controllercodeigniter 模型视图控制器中的会话
【发布时间】:2015-07-23 20:07:34
【问题描述】:

当我登录成功然后重定向到主页。

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

控制器

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
{
}
?>

【问题讨论】:

标签: php codeigniter session


【解决方案1】:

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

第二个问题是 if($result!='')。这行不通。 $result 是一个数组。使用 if(!empty($result)) 或 if(count($result)!==0) 或类似的东西。

【讨论】:

    【解决方案2】:

    在您的 pagination_view 上,我不会使用重定向,而是将其放在控制器功能上

    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);
    
    }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-28
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 2015-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多