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 相关文章推荐
PHP6 mysql连接方式说明
Feb 09 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
Aug 05 PHP
phpmyadmin 常用选项设置详解版
Mar 07 PHP
PHP 数组基础知识小结
Aug 20 PHP
php分页示例分享
Apr 30 PHP
php随机取mysql记录方法小结
Dec 27 PHP
php插入排序法实现数组排序实例
Feb 16 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
php+MySQL实现登录时验证登录名和密码是否正确
May 10 PHP
php 生成签名及验证签名详解
Oct 26 PHP
php常用数组函数实例小结
Dec 29 PHP
PHP token验证生成原理实例分析
Jun 05 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许愿墙模块功能分析
2013/06/25 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
php微信开发之图片回复功能
2018/06/14 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
javascript实现颜色渐变的方法
2013/10/30 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
将 vue 生成的 js 上传到七牛的实例
2017/07/28 Javascript
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
vue之延时刷新实例
2019/11/14 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
Python中的pass语句使用方法讲解
2015/05/14 Python
python中字典(Dictionary)用法实例详解
2015/05/30 Python
python里运用私有属性和方法总结
2019/07/08 Python
如何安装并使用conda指令管理python环境
2019/07/10 Python
Bodum官网:咖啡和茶壶、玻璃器皿、厨房电器等
2018/08/01 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
食品营养与检测应届生求职信
2013/11/08 职场文书
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
高一学生期末评语
2014/04/25 职场文书
工会工作先进事迹
2014/08/18 职场文书
水电工程师岗位职责
2015/02/13 职场文书
个人专业技术总结
2015/03/05 职场文书
创业计划书之外语培训班
2019/11/02 职场文书
Python中使用ipython的详细教程
2021/06/22 Python