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

 更新时间:2014年06月12日 16:41:11   投稿:shichen2014  
这篇文章主要介绍了Codeigniter实现处理用户登录验证后的URL跳转,需要的朋友可以参考下

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)); ?>

相关文章

  • PHP从数组中删除元素的四种方法实例

    PHP从数组中删除元素的四种方法实例

    本篇文章主要介绍了PHP从数组中删除元素的四种方法实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • PHP获取用户客户端真实IP的解决方案

    PHP获取用户客户端真实IP的解决方案

    获取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,不能百分百准确.但是我们尽量使用比较完善的方法获取客户的ip,下面小编给大家分享PHP获取用户客户端真实IP的方法,一起看看吧
    2016-10-10
  • codeigniter数据库操作函数汇总

    codeigniter数据库操作函数汇总

    网上倒是有不少Codeigniter数据库操作的介绍,这里做一个汇总,需要的朋友可以参考下
    2014-06-06
  • laravel自定义分页的实现案例offset()和limit()

    laravel自定义分页的实现案例offset()和limit()

    今天小编就为大家分享一篇laravel自定义分页的实现案例offset()和limit(),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • php compact 通过变量创建数组

    php compact 通过变量创建数组

    php compact函数用于创建数组,该函数创建数组比较特殊,compact函数参数将接受一个或多个变量,然后将变量的名称作为该创建数组的索引,变量值作为该创建数组的值,然后返回创建完成的数组。本文章向大家讲解compact函数的基本语法及使用实例。需要的码农可以参考一下。
    2016-11-11
  • thinkPHP框架RBAC实现原理分析

    thinkPHP框架RBAC实现原理分析

    这篇文章主要介绍了thinkPHP框架RBAC实现原理,结合实例形式分析了thinkPHP框架中RBAC角色权限控制相关实现原理与操作技巧,需要的朋友可以参考下
    2019-02-02
  • thinkphp5加layui实现图片上传功能(带图片预览)

    thinkphp5加layui实现图片上传功能(带图片预览)

    这篇文章主要介绍了thinkphp5加layui实现图片上传功能(带图片预览)的相关资料,需要的朋友可以参考下
    2023-03-03
  • php中smarty变量修饰用法实例分析

    php中smarty变量修饰用法实例分析

    这篇文章主要介绍了php中smarty变量修饰用法,实例分析了smarty模板变量修饰的常用技巧,需要的朋友可以参考下
    2015-06-06
  • 优化WordPress的Google字体以加速国内服务器上的运行

    优化WordPress的Google字体以加速国内服务器上的运行

    这篇文章主要介绍了优化WordPress的Google字体以加速国内服务器上的运行的方法,由于谷歌在内地被墙导致其更新等方面都收到不同程度的影响,需要的朋友可以参考下
    2015-11-11
  • ThinkPHP模版中导入CSS和JS文件的方法

    ThinkPHP模版中导入CSS和JS文件的方法

    这篇文章主要介绍了ThinkPHP模版中导入CSS和JS文件的方法,分析了使用import标签与load标签实现css和js文件导入的技巧,需要的朋友可以参考下
    2014-11-11

最新评论