Codeigniter实现处理用户登录验证后的URL跳转
Codeigniter处理用户登录验证后URL跳转,主要涉及到了My_Controller.php页面以及登录验证模块User.php页面,具体代码如下:
My_Controller.php页面:
classMY_ControllerextendsCI_Controller { publicfunction__construct() { parent::__construct(); /*判断是否登录,判断当前URL是否是auth/login*/ if(!$this->tank_auth->is_logged_in() &&($this->router->fetch_class()!='auth'&&$this->router->fetch_method()!='login')) { $redirect=$this->uri->uri_string(); if($_SERVER['QUERY_STRING']) { $redirect.='?'.$_SERVER['QUERY_STRING']; } /*跳转到用户登陆页面,指定Login后跳转的URL*/ redirect('auth/login?redirect='.$redirect); } } }
User.php页面:
classUserextendsMY_Controller { functionlogin() {
if($this->tank_auth->is_logged_in()){ //loggedin redirect('/');
}else{ //othercodeshere...... /*判断是否有redirect信息*/ $data['redirect']=isset($_GET['redirect'])?$_GET['redirect']:'/';
if($this->form_validation->run()){ //validationok if($this->tank_auth->login( $this->form_validation->set_value('login'), $this->form_validation->set_value('password'), $this->form_validation->set_value('remember'), $data['login_by_username'], $data['login_by_email'])){ //success redirect($data['redirect']);
}else{ //errorhandling } } $this->load->view("login_form") } } /* Note:在login_form中需要注意,提交表单的form地址: <?phpechoform_open(site_url("/auth/login?redirect=".$redirect));?> */ }