登录成功后再重定向到主页。
我在登录和查看页面中设置会话后,当我刷新同一页面时,它会重定向到登录页面,原因是什么,请提供解决这个问题的方法?
控制器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();
}
<<p> 视图/strong> <?php
if(!$this->session->userdata('user_id'))
{
redirect(base_url().'search/login');
}
else
{
}
?>
两个问题,第一个是架构问题,第二个可能导致您的问题。首先,你不应该在视图中重定向。这应该在加载主页(或其他页面)的控制器中。如果你不属于那个视图,你甚至不应该进入那个视图。
第二个问题是if($result!= ")。这行不通。$result是一个数组。使用if(!empty($result))或if(count($result)!==0)或类似的东西
在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);
}
}