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&amp;java(一)
Oct 09 PHP
php 获取可变函数参数的函数
Aug 26 PHP
PHP array 的加法操作代码
Jul 24 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
Nov 01 PHP
smarty 缓存控制前的页面静态化原理
Mar 15 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
Jul 04 PHP
护卫神php套件 php版本升级方法(php5.5.24)
May 10 PHP
php提高网站效率的技巧
Sep 29 PHP
PHP自动补全表单的两种方法
Mar 06 PHP
php实现微信分享朋友链接功能
Feb 18 PHP
laravel model 两表联查示例
Oct 24 PHP
php慢查询日志和错误日志使用详解
Feb 27 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
给海燕B411配件机起死回生配上件
2021/03/02 无线电
PHP去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
php短网址和数字之间相互转换的方法
2015/03/13 PHP
PHP图像处理类库及演示分享
2015/05/17 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
Node.js使用Express创建Web项目详细教程
2017/03/31 Javascript
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
用python记录运行pid,并在需要时kill掉它们的实例
2017/01/16 Python
详解python中字典的循环遍历的两种方式
2017/02/07 Python
python利用MethodType绑定方法到类示例代码
2017/08/27 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
50行Python代码实现人脸检测功能
2018/01/23 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
查环查孕证明
2014/01/10 职场文书
保证书范文大全
2014/04/28 职场文书
团组织关系介绍信
2019/06/24 职场文书
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS