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 相关文章推荐
ajax+php打造进度条 readyState各状态
Mar 20 PHP
php导出word格式数据的代码实例
Nov 25 PHP
php数组编码转换示例详解
Mar 11 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
Jul 04 PHP
php中spl_autoload详解
Oct 17 PHP
thinkphp判断访客为手机端或PC端的方法
Nov 24 PHP
PHP实现简单ajax Loading加载功能示例
Dec 28 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
Apr 18 PHP
PHP curl批处理及多请求并发实现方法分析
Aug 15 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
Sep 26 PHP
laravel执行php artisan migrate报错的解决方法
Oct 09 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学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
js左侧多级菜单动态的解决方案
2010/02/01 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
js绑定事件和解绑事件
2017/04/27 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
js异步编程小技巧详解
2017/08/14 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
element-ui 上传图片后清空图片显示的实例
2018/09/04 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
Python单链表简单实现代码
2016/04/27 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
Python中标准模块importlib详解
2017/04/16 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
python3 图片referer防盗链的实现方法
2018/03/12 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
一款利用html5和css3实现的3D滚动特效的教程
2015/01/04 HTML / CSS
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
最新自我评价范文
2013/11/16 职场文书
总裁秘书岗位职责
2013/12/04 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书