• 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)); ?>
  • 相关阅读:
    disruptor笔记之一:快速入门
    React-高阶函数_函数柯里化
    解决跨域、同源策略-React中代理的配置
    React中key的作用
    React三种路由参数传递方式
    React生命周期(好玩的讲解方式)
    React数据共享插件-PubSub
    React中路由基本&高级使用
    React中嵌套路由
    React中网络请求(axios和fetch)
  • 原文地址:https://www.cnblogs.com/kenshinobiy/p/4415466.html
Copyright © 2020-2023  润新知