codeigniter修改内核在调用前控制器方法前输出内容并中止方法调用,如用于未登录跳转到登录页面
来源:互联网 发布:百度网盘wifi改为数据 编辑:程序博客网 时间:2024/05/29 18:53
之前并不想修改内核代码,因为想考虑升级,
所以使用了在控制器的__construct进行检测是否登录,然后再设置标志变量,接着在方法中检测此变量,如果未登录就中止方法执行,载入登录页面.
因为同时不想使用浏览器重新定位跳转方法.
现在看一下代码.
修改内核方法是
在system/core/codeigniter.php中找到
// Call the requested method.
// Any URI segments present (besides the class/function) will be passed to the method for convenience
call_user_func_array(array(&$CI, $method), array_slice($URI->rsegments, 2));
在
call_user_func_array(array(&$CI, $method), array_slice($URI->rsegments, 2));
加上
if (empty($breakCtr))
$breakCtr是在控制器的初始化时检测登录状态设置的标志,如果发现未登录,也就不再调用方法了.
标志位是在方法执行前设置
global $breakCtr;
$breakCtr = 1;
如在本类的初始化中.
第三种方式那就是让浏览器跳转了.可能这种方式是最好了吧,不改内核,又能方便统一检测处理登录状态.
- codeigniter修改内核在调用前控制器方法前输出内容并中止方法调用,如用于未登录跳转到登录页面
- 登录后跳转到登录前页面
- jquery ajax方法调用在session超时以后如何跳转到登录页面?
- jquery ajax方法调用在session超时以后如何跳转到登录页面?
- jquery ajax方法调用在session超时以后如何跳转到登录页面?
- asp.net如何让未登录用户登录后能自动跳转到登录前访问的页面
- 实现登录成功后跳转到登录前的页面
- 登录后自动跳转到登录前的页面
- spring mvc怎么加入权限控制,在未登录前,任何访问url都跳转到login页面;登录成功后跳转至先前的url
- filter实现登录验证,并实现页面跳转到登录前浏览的页面(同步异步皆可)
- 登陆后自动跳转到登录前页面
- shiro不能跳转到登录前请求页面
- 在jsp中怎么实现登录后自动跳转到登陆前浏览页面
- 在Struts2中实现登陆后跳转到登录前页面
- 在Struts2中实现登陆后跳转到登录前页面
- 在Struts2中实现登陆后跳转到登录前页面
- 离开页面前调用Js方法
- 用户登录后跳转到 登录前 的页面 url 跳转
- 一直以为使用js自动触发的form提交也会触动onsubmit事件,原来不会
- 动态生成适用于像sql的where条件拼接的面板js代码 与 php处理代码 (二)
- postfix 小部分失败日志分析
- js的函数在定义前调用只适用于同标签块内
- <button>提交</button>在ie8,7下面不相当input type=submit
- codeigniter修改内核在调用前控制器方法前输出内容并中止方法调用,如用于未登录跳转到登录页面
- php获取文件总行数方法
- ie bug:html的fieldset在ie中内容溢出
- jQuery JavaScript Library v1.6.1的$(document.body).append(html)不支持ie
- Windows 下OpenSSL 安装详解 +图解
- js 可编辑并用ajax保存的a标签仿input功能代码,测试ff/ie
- 取消ie的active控件不再询问总是信任自动下载安装的设置
- ie配置显示兼容性按钮
- ie7在父元素从visibility: hidden;变成visibility: visible;后,子元素input非常久后才显示