zoukankan      html  css  js  c++  java
  • Codeigniter处理用户登录验证后URL跳转

    涉及到My_Controller.php以及登录验证模块User.php,代码如下:

    My_Controller.php

    class MY_Controller extends CI_Controller
    {
        public function __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

    class User extends MY_Controller 
    {
        function login()
        {
    
            if ($this->tank_auth->is_logged_in()) {                                    // logged in
                redirect('/');
    
            } else {
                //other codes here......
                /*判断是否有redirect信息*/
                $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
    
                if ($this->form_validation->run()) {                                // validation ok
                    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 {
                        //error handling
                    }
                }
                $this->load->view("login_form")
            }
        }
    /*
    Note: 在login_form中需要注意,提交表单的form地址:
    <?php echo form_open(site_url("/auth/login?redirect=".$redirect)); ?>
    */
    }
    在login_form中需要注意,提交表单的form地址:
    <?php echo form_open(site_url("/auth/login?redirect=".$redirect)); ?>
     
  • 相关阅读:
    用Keytool和OpenSSL生成和签发数字证书
    Maven 的插件和生命周期的绑定
    MySQL 存储过程基本函数
    MySQL 存储过程游标
    MySQL 存储过程控制语句
    MySQL 存储过程
    Shell 编程基础之 && 与 ||
    Shell 编程基础之 [ 与 [[ 的异同
    Linux 任务控制
    《深入理解Java虚拟机》笔记3
  • 原文地址:https://www.cnblogs.com/jiji262/p/2551066.html
Copyright © 2011-2022 走看看