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


Posted in PHP onJune 12, 2014

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 相关文章推荐
基于mysql的bbs设计(五)
Oct 09 PHP
解决phpmyadmin中文乱码问题。。。
Jan 18 PHP
Linux下进行MYSQL编程时插入中文乱码的解决方案
Mar 15 PHP
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
组合算法的PHP解答方法
Feb 04 PHP
redis 队列操作的例子(php)
Apr 12 PHP
php中get_headers函数的作用及用法的详细介绍
Apr 27 PHP
Centos6.5和Centos7 php环境搭建方法
May 27 PHP
nginx下安装php7+php5
Jul 31 PHP
thinkphp配置文件路径的实现方法
Aug 30 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
Mar 28 PHP
yii框架使用分页的方法分析
Jul 25 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
Jun 12 #PHP
新浪SAE云平台下使用codeigniter的数据库配置
Jun 12 #PHP
Codeigniter整合Tank Auth权限类库详解
Jun 12 #PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
Jun 12 #PHP
php自动识别文件编码并转换为UTF-8的方法
Jun 12 #PHP
codeigniter集成ucenter1.6双向通信的解决办法
Jun 12 #PHP
使用CodeIgniter的类库做图片上传
Jun 12 #PHP
You might like
简单的用PHP编写的导航条程序
2006/10/09 PHP
PHP 可阅读随机字符串代码
2010/05/26 PHP
php打造智能化的柱状图程序,用于报表等
2015/06/19 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
2015/08/21 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
php中如何执行linux命令详解
2018/11/06 PHP
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
javascript不可用的问题探究
2013/10/01 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
2015/07/29 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
vue页面加载闪烁问题的解决方法
2018/03/28 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
Python实现的简单发送邮件脚本分享
2014/11/07 Python
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
秋天的图画教学反思
2014/05/01 职场文书
2014年教师节活动总结
2014/08/29 职场文书
优秀班主任材料
2014/12/16 职场文书
通知函格式范文
2015/04/27 职场文书
公司职员入党自传书
2015/06/26 职场文书
战友聚会致辞
2015/07/28 职场文书
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript
Android中View.post和Handler.post的关系
2022/06/05 Java/Android