当前位置:首页 > CMS教程 > 其它CMS > 列表

Codeigniter实现处理用户登录验证后的URL跳转

发布:smiling 来源: PHP粉丝网  添加日期:2021-02-18 15:18:46 浏览: 评论:0 

这篇文章主要介绍了Codeigniter实现处理用户登录验证后的URL跳转,需要的朋友可以参考下。

Codeigniter处理用户登录验证后URL跳转,主要涉及到了My_Controller.php页面以及登录验证模块User.php页面,具体代码如下:

My_Controller.php页面:

  1. class MY_Controller extends CI_Controller 
  2. { 
  3.     public function __construct() 
  4.     { 
  5.         parent::__construct(); 
  6.         /*判断是否登录,判断当前URL是否是auth/login*/ 
  7.         if ( ! $this->tank_auth->is_logged_in() 
  8.                 && ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login')) 
  9.         { 
  10.             $redirect = $this->uri->uri_string(); 
  11.  
  12.             if ( $_SERVER['QUERY_STRING']) 
  13.             { 
  14.                 $redirect .= '?' . $_SERVER['QUERY_STRING']; 
  15.             } 
  16.             /*跳转到用户登陆页面,指定Login后跳转的URL*/ 
  17.             redirect('auth/login?redirect='.$redirect); 
  18.         }    
  19.     } 
  20. } 

User.php页面:

  1. class User extends MY_Controller 
  2. { 
  3.     function login() 
  4.     { 
  5.         if ($this->tank_auth->is_logged_in()) {                                    // logged in 
  6.             redirect('/'); 
  7.  
  8.         } else { 
  9.             //other codes here...... 
  10.             /*判断是否有redirect信息*/ 
  11.             $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/'; 
  12.  
  13.             if ($this->form_validation->run()) {                                // validation ok 
  14.                 if ($this->tank_auth->login( 
  15.                         $this->form_validation->set_value('login'), 
  16.                         $this->form_validation->set_value('password'), 
  17.                         $this->form_validation->set_value('remember'), 
  18.                         $data['login_by_username'], 
  19.                         $data['login_by_email'])) {                                // success 
  20.                     redirect($data['redirect']); 
  21.  
  22.                 } else { 
  23.                     //error handling 
  24.                 } 
  25.             } 
  26.             $this->load->view("login_form") 
  27.         } 
  28.     } 
  29. /* 
  30. Note: 在login_form中需要注意,提交表单的form地址: 
  31. <?php echo form_open(site_url("/auth/login?redirect=".$redirect)); ?> 
  32. */ 
  33. } 

在login_form中需要注意,提交表单的form地址为:

<?php echo form_open(site_url("/auth/login?redirect=".$redirect)); ?>

Tags: Codeigniter URL跳转

分享到: