【发布时间】:2020-07-29 20:11:09
【问题描述】:
我希望用户不要通过 URL 跳转到我的欢迎页面。我在构造函数中添加了会话用户数据,但重定向不起作用,显示“ERR_TOO_MANY_REDIRECTS”.. 所以我也使用 header() 和 site_url 和 base_url 但这些都不起作用......
class Admin extends MY_Controller
{
public function __construct()
{
parent::__construct();
if (!$this->session->userdata('userId'))
return redirect('admin/index');
}
public function index()
{
$this->form_validation->set_rules('username', 'Username', 'required|alpha');
$this->form_validation->set_rules('pass', 'password', 'required|max_length[12]');
$this->form_validation->set_error_delimiters("<div class='text-danger'>","</div>");
if($this->form_validation->run())
{
$user=$this->input->post('username');
$pass=$this->input->post('pass');
$this->load->model('loginmodel');
$id=$this->loginmodel->isvalidate($user,$pass);
if($id)
{
$this->load->library('session');
$this->session->set_userdata('userId',$id);
return redirect('admin/welcome');
}
else
{
$this->session->set_flashdata('loginFailed','Invalid Username/password');
return redirect('admin/login');
}
}
else
{
$this->load->view('admin/login');
}
}
}
?>
【问题讨论】:
-
显然您正在不断地重定向到同一页面或来回重定向。例如重定向到管理员/欢迎和管理员欢迎将您重定向回管理员/登录。或者 admin/login 将您重定向到 admin/login 等。 1. 尝试注释掉重定向然后检查会发生什么。 2. 在重定向之前到处调试,这样你就可以看到发生了什么。 3. 将重定向的注释一一取消,看看bug在哪里。
标签: php codeigniter codeigniter-3 codeigniter-2