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 相关文章推荐
phpMyAdmin 安装配置方法和问题解决
Jun 08 PHP
发一个php简单的伪原创程序,配合商城采集用的
Oct 12 PHP
PHP eval函数使用介绍
Dec 08 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
Jul 25 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
Nov 09 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
Apr 25 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
浅谈PHP封装CURL
Mar 06 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使用百度天气接口示例
2014/04/22 PHP
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
浅谈php冒泡排序
2014/12/30 PHP
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
2016/07/06 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
2017/09/28 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
Python单元测试unittest的具体使用示例
2018/12/17 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
Python装饰器原理与基本用法分析
2020/01/07 Python
Python requests获取网页常用方法解析
2020/02/20 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
如何设置Java的运行环境
2013/04/05 面试题
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
学校爱心捐款倡议书
2014/05/13 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
党员个人党性分析材料
2014/12/18 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
幼儿园保育员随笔
2015/08/14 职场文书
美元符号 $
2022/02/17 杂记
Win2008系统搭建DHCP服务器
2022/06/25 Servers