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

User.php页面:

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

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

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

Tags: Codeigniter URL跳转

分享到: