用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3985|回复: 8
收起左侧

[已解决] CI中是每个函数的构造都调用Session吗

[复制链接]
发表于 2011-4-10 11:56:53 | 显示全部楼层 |阅读模式
大家好!

我发现在CI中如果一个controller中的构造函数不调用 Session_start();那么这个controller 跳转的页面 就不能使用 sessoin.页面的view就得不到 $_SESSION["userid"]这些登录后存在session中的值。 是在CI开发中每个controller中的构造函数都要调用 session_start() ?
PHP复制代码
        function Home(){
                parent::__construct();
        //      $this->load->helper("form");
        $this->load->helper("form");
         session_start();
        }
 
复制代码

那岂不是没有登录的访客 也要启动一个Session_start ?
发表于 2011-4-10 12:22:16 | 显示全部楼层
本帖最后由 jeongee 于 2011-4-10 12:25 编辑

你在用session来验证用户身份的情况下,不加载session你如何判断用户是未登录的呢?

这个和普通PHP一样的道理,怎么处理就看你如何运用了,如果你觉得每次都写一次麻烦,那你就可以扩展控制器类等一些手段,甚至在index。php里加上session_start();都是可以的,记住CI是PHP写的。
从楼上上次发的帖子来看,楼主是从asp,java转过来的?有些东西php和他们还是不一样的,不要拘留在老的思维上。
发表于 2011-4-10 18:05:25 | 显示全部楼层
直接用我发布的 Session 类库即可。
 楼主| 发表于 2011-4-10 21:58:47 | 显示全部楼层
你在用session来验证用户身份的情况下,不加载session你如何判断用户是未登录的呢?

这个和普通PHP一样的 ...
jeongee 发表于 2011-4-10 12:22


多谢! 就是说我每一个controller的构造函数都要增加session_start了? 因为每个页面都有 $_SESSION的检查
 楼主| 发表于 2011-4-10 21:59:12 | 显示全部楼层
直接用我发布的 Session 类库即可。
Hex 发表于 2011-4-10 18:05


好我看看 在哪儿啊
发表于 2011-4-11 00:03:26 | 显示全部楼层
好我看看 在哪儿啊
liren 发表于 2011-4-10 21:59



    请查看代码板块,里面有很多好的代码,不看不知道,一看吓一跳。
发表于 2011-4-16 11:27:24 | 显示全部楼层
这个很简单...你每一个controller 都继承你自己写的一个 MY_controller
然后你的MY_controller 继承CI_controller  再在MY_controller中判断是否登录...session_start也只要写一次啦.
发表于 2011-4-16 15:25:28 | 显示全部楼层
为什么不用autoload?
发表于 2011-4-25 19:25:37 | 显示全部楼层
为什么不用autoload?
longjianghu 发表于 2011-4-16 15:25



    精辟!!

本版积分规则