设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
搜索
CodeIgniter 搜索引擎
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
CodeIgniter 问答求助
›
控制器类的问题
1
2
/ 2 页
下一页
返回列表
查看:
5837
|
回复:
10
控制器类的问题
[复制链接]
bcb51
bcb51
当前离线
积分
11
IP卡
狗仔卡
发表于 2008-9-22 15:29:30
|
显示全部楼层
|
阅读模式
大家好,有个问题想请教一下:
我有一个控制器文件blog_one.php,默认是指向他的。现在我又加了个blog_two.php文件。但我的登录验证是在blog_one的类里面,如果用户直接输入blog_two的地址,就可以绕过登录验证,请问大家有没有什么好的办法。当然,在blog_two也加上登录验证肯定是可行的,但还有没有更好的办法呢?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
LEMON
LEMON
当前离线
积分
137
IP卡
狗仔卡
发表于 2008-9-22 17:24:49
|
显示全部楼层
登录验证只在一个地方做,放在登录模块(这个模块可以是控制器,也可以是控制器函数)中,其他地方采用如SESSION来进行用户认证。你需要做的是把你的用户认证个业务逻辑进行分离出来,其他地方需要用户认证的时候,用如SESSION来进行控制即可。
如果有很多文件都需要进行用户认证,可以对控制器类进行继承,然后在控制器类里面进行用户认证,其他需要进行认证的控制器从它继承即可。
回复
支持
反对
使用道具
举报
显身卡
Hex
Hex
当前离线
积分
50179
IP卡
狗仔卡
发表于 2008-9-22 17:57:39
|
显示全部楼层
支持自己继承控制器这个方法。
一般来说,就是判断 session,如果未登录,就要 redirect 一下。
回复
支持
反对
使用道具
举报
显身卡
yz20sui
yz20sui
当前离线
积分
117
IP卡
狗仔卡
发表于 2008-9-22 20:26:01
|
显示全部楼层
把 session 检测部分的代码 独立出来 然后封装到model里面 需要验证身份的 控制器中
只需要 load该模型 调用相关方法即可
回复
支持
反对
使用道具
举报
显身卡
LEMON
LEMON
当前离线
积分
137
IP卡
狗仔卡
发表于 2008-9-22 20:39:01
|
显示全部楼层
模型是专门用来和数据库打交道的。最好不要用Model来干这个,放在控制器中实现比较合理。
回复
支持
反对
使用道具
举报
显身卡
bcb51
bcb51
当前离线
积分
11
IP卡
狗仔卡
楼主
|
发表于 2008-9-22 21:23:02
|
显示全部楼层
谢谢!
也就说在每个控制器类里面都要加上检查session的函数,这样的话是否有点重复呢,每个类里面都有这么一个is_login()的函数来检查session,而代码完全一样.如果继承blog_one控制器类,这个可能将程序的耦合度提高了,而且我根本不需要blog_one继承下来的其他方法.
能否有更好一点的办法?
请各位不吝赐教!
回复
支持
反对
使用道具
举报
显身卡
LEMON
LEMON
当前离线
积分
137
IP卡
狗仔卡
发表于 2008-9-22 21:27:47
|
显示全部楼层
对Controller控制器进行继承,如My_Controller,这个控制器只做一件事情,就是对SESSION数据进行验证;
blog下面的两个或者多个需要用户认证的控制器都从My_Controller继承即可。
回复
支持
反对
使用道具
举报
显身卡
bcb51
bcb51
当前离线
积分
11
IP卡
狗仔卡
楼主
|
发表于 2008-9-22 21:39:17
|
显示全部楼层
谢谢lemon!
我明白了!应该blog_one,blog_two.....都从mycontroler继承,这样组织就很合理了,
再次谢谢
回复
支持
反对
使用道具
举报
显身卡
Hex
Hex
当前离线
积分
50179
IP卡
狗仔卡
发表于 2008-9-22 23:49:29
|
显示全部楼层
更好的办法就是采用称为 filter 的 hook 方法,这个在官网讨论很火热。
回复
支持
反对
使用道具
举报
显身卡
LEMON
LEMON
当前离线
积分
137
IP卡
狗仔卡
发表于 2008-9-23 11:47:36
|
显示全部楼层
有时间斑竹秀一个DEMO上来,:)
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
/ 2 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页