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:25 编辑
你在用session来验证用户身份的情况下,不加载session你如何判断用户是未登录的呢?
这个和普通PHP一样的道理,怎么处理就看你如何运用了,如果你觉得每次都写一次麻烦,那你就可以扩展控制器类等一些手段,甚至在index。php里加上session_start();都是可以的,记住CI是PHP写的。
从楼上上次发的帖子来看,楼主是从asp,java转过来的?有些东西php和他们还是不一样的,不要拘留在老的思维上。 直接用我发布的 Session 类库即可。 你在用session来验证用户身份的情况下,不加载session你如何判断用户是未登录的呢?
这个和普通PHP一样的 ...
jeongee 发表于 2011-4-10 12:22 http://codeigniter.org.cn/forums/images/common/back.gif
多谢! 就是说我每一个controller的构造函数都要增加session_start了? 因为每个页面都有 $_SESSION的检查 直接用我发布的 Session 类库即可。
Hex 发表于 2011-4-10 18:05 http://codeigniter.org.cn/forums/images/common/back.gif
好我看看 在哪儿啊 好我看看 在哪儿啊
liren 发表于 2011-4-10 21:59 http://myci.tk/forums/images/common/back.gif
请查看代码板块,里面有很多好的代码,不看不知道,一看吓一跳。 这个很简单...你每一个controller 都继承你自己写的一个 MY_controller
然后你的MY_controller 继承CI_controller再在MY_controller中判断是否登录...session_start也只要写一次啦. 为什么不用autoload? 为什么不用autoload?
longjianghu 发表于 2011-4-16 15:25 http://codeigniter.org.cn/forums/images/common/back.gif
精辟!!
页:
[1]