liren 发表于 2011-4-10 11:56:53

CI中是每个函数的构造都调用Session吗

大家好!

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

那岂不是没有登录的访客 也要启动一个Session_start ?

jeongee 发表于 2011-4-10 12:22:16

本帖最后由 jeongee 于 2011-4-10 12:25 编辑

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

这个和普通PHP一样的道理,怎么处理就看你如何运用了,如果你觉得每次都写一次麻烦,那你就可以扩展控制器类等一些手段,甚至在index。php里加上session_start();都是可以的,记住CI是PHP写的。
从楼上上次发的帖子来看,楼主是从asp,java转过来的?有些东西php和他们还是不一样的,不要拘留在老的思维上。

Hex 发表于 2011-4-10 18:05:25

直接用我发布的 Session 类库即可。

liren 发表于 2011-4-10 21:58:47

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

这个和普通PHP一样的 ...
jeongee 发表于 2011-4-10 12:22 http://codeigniter.org.cn/forums/images/common/back.gif

多谢! 就是说我每一个controller的构造函数都要增加session_start了? 因为每个页面都有 $_SESSION的检查

liren 发表于 2011-4-10 21:59:12

直接用我发布的 Session 类库即可。
Hex 发表于 2011-4-10 18:05 http://codeigniter.org.cn/forums/images/common/back.gif

好我看看 在哪儿啊

Hex 发表于 2011-4-11 00:03:26

好我看看 在哪儿啊
liren 发表于 2011-4-10 21:59 http://myci.tk/forums/images/common/back.gif


    请查看代码板块,里面有很多好的代码,不看不知道,一看吓一跳。

as3291363 发表于 2011-4-16 11:27:24

这个很简单...你每一个controller 都继承你自己写的一个 MY_controller
然后你的MY_controller 继承CI_controller再在MY_controller中判断是否登录...session_start也只要写一次啦.

longjianghu 发表于 2011-4-16 15:25:28

为什么不用autoload?

2009cms 发表于 2011-4-25 19:25:37

为什么不用autoload?
longjianghu 发表于 2011-4-16 15:25 http://codeigniter.org.cn/forums/images/common/back.gif


    精辟!!
页: [1]
查看完整版本: CI中是每个函数的构造都调用Session吗