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

判断用户是否登陆各位一般写在哪里?

[复制链接]
发表于 2008-10-23 22:39:00 | 显示全部楼层 |阅读模式
今天写到用户登陆后,从SESSION中取值,来判断用户是否登陆,没有登陆转到登陆页。

各位一般把这个判断写在哪里?我直接写在了各个控制器的构造函数里面,倒是没有问题,不过总觉得不是太对,各位是怎么做的??

PHP复制代码
 
<?php
   
        class BookControl extends Controller {
               
                function BookControl(){
                        parent::Controller();
                        $this->load->model('userdata');
               
                if (!$this->userdata->checkLogin()){
                        $this->load->helper("url");
                         redirect('usercontrol');  
                }
                }
 
          .................
}
 
复制代码
发表于 2008-10-24 01:39:28 | 显示全部楼层
我放到 MY_Controller 中
发表于 2008-10-24 08:58:41 | 显示全部楼层
同楼上~
发表于 2008-10-24 09:15:16 | 显示全部楼层
楼上两位能不能说说思路,为啥要放my_里
如果我的网站只是要求显示用户的用户在顶端,只有当他要发布评论的时候才强制要求他登陆的话
我是不是可以把这个判断放在view的header里呢

我的view的header里判断是否登陆,如果登陆显示用户名,如果没登陆显示guest.
当他发布评论的时候如果登陆直接进入发布,如果没登陆则要求他登陆。

我这么想有没有什么问题?
 楼主| 发表于 2008-10-24 10:06:30 | 显示全部楼层
麻烦能说详细些,谢谢了!!
 楼主| 发表于 2008-10-24 10:52:06 | 显示全部楼层
原帖由 Hex 于 2008-10-24 01:39 发表
我放到 MY_Controller 中



创建一个MY_Controller放在application/libraries/里面

PHP复制代码
<?php
    class MY_Controller extends Controller {
 
      function MY_Controller(){
        parent::Controller();
       
        $this->load->model('userdata');
               
                if (!$this->userdata->checkLogin()){
                        $this->load->helper("url");
                         redirect('usercontrol');    
                }
      }
}
 
?>
复制代码


在控制器中继承它
PHP复制代码
<?php
 
class Main extends MY_Controller {
 
        function Main()
        {
                parent::MY_Controller ();                        
        }
       
        function index()
        {
                $this->load->helper('url');
                $this->load->view('main');
               
        }
}
复制代码


需要做用户身份验证的继承MY_Controller 不需要的继承 Controller,是这个意思吧

[ 本帖最后由 gz123 于 2008-10-24 10:57 编辑 ]
发表于 2008-10-24 11:43:03 | 显示全部楼层
原帖由 wood 于 2008-10-24 11:15 发表
如果我的网站只是要求显示用户的用户在顶端,只有当他要发布评论的时候才强制要求他登陆的话
我是不是可以把这个判断放在view的header里呢


逻辑判断应当放在model中,而控制逻辑判断的逻辑应当放在控制器中。
如果只有发布评论需要登陆的话,把判断的控制器放在发布评论的控制器里。
发表于 2008-10-24 22:49:45 | 显示全部楼层
原帖由 沧蓝 于 2008-10-24 11:43 发表


逻辑判断应当放在model中,而控制逻辑判断的逻辑应当放在控制器中。
如果只有发布评论需要登陆的话,把判断的控制器放在发布评论的控制器里。


但如果不发布评论的话也要在顶端显示用户名或者guest啊
发表于 2008-10-25 10:47:43 | 显示全部楼层
wood: 你可以做一个判断是否登录的 Helper,放在 view 中。
然后可以根据判断结果来决定显示什么,但是逻辑一定不要放到视图中,视图只根据条件显示内容就可以了。
发表于 2008-10-28 01:58:42 | 显示全部楼层
我弄了个判断是否登录的HELPER  要判断的时候就调用那个函数

不知道这样写好不好  我连判断逻辑都写那个函数里了

本版积分规则