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 相关文章推荐
PHP新手上路(六)
Oct 09 PHP
PHP 字符串操作入门教程
Dec 06 PHP
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
解析Ubuntu下crontab命令的用法
Jun 24 PHP
CI(CodeIgniter)框架配置
Jun 10 PHP
CI框架装载器Loader.php源码分析
Nov 04 PHP
PHP实现的浏览器检查类
Apr 11 PHP
php利用header函数下载各种文件
Aug 24 PHP
PHP中使用OpenSSL生成证书及加密解密
Feb 05 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
May 20 PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 PHP
PHP扩展mcrypt实现的AES加密功能示例
Jan 29 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
杏林同学录(五)
2006/10/09 PHP
逆序二维数组插入一元素的php代码
2012/06/08 PHP
简单的自定义php模板引擎
2016/08/26 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
HTML5附件拖拽上传drop &amp; google.gears实现代码
2011/04/28 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
2019/07/25 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
js this 绑定机制深入详解
2020/04/30 Javascript
Python实现批量检测HTTP服务的状态
2016/10/27 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
python将文本中的空格替换为换行的方法
2018/03/19 Python
Python实现判断并移除列表指定位置元素的方法
2018/04/13 Python
python计算列表内各元素的个数实例
2018/06/29 Python
python 以16进制打印输出的方法
2018/07/09 Python
python写入文件自动换行问题的方法
2019/07/05 Python
python利用tkinter实现屏保
2019/07/30 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
美国眼镜网:GlassesUSA
2017/09/07 全球购物
工程预算与管理应届生求职信
2013/10/06 职场文书
工艺员岗位职责
2014/02/11 职场文书
公司门卫的岗位职责
2014/02/19 职场文书
战略合作协议书范本
2014/04/18 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
人大代表选举标语
2014/10/07 职场文书
素质拓展训练感想
2015/08/07 职场文书
OpenCV-Python实现轮廓的特征值
2021/06/09 Python
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
golang的文件创建及读写操作
2022/04/14 Golang