gz123 发表于 2008-10-23 22:39:00

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

今天写到用户登陆后,从SESSION中取值,来判断用户是否登陆,没有登陆转到登陆页。

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


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

          .................
}

Hex 发表于 2008-10-24 01:39:28

我放到 MY_Controller 中

沧蓝 发表于 2008-10-24 08:58:41

同楼上~

wood 发表于 2008-10-24 09:15:16

楼上两位能不能说说思路,为啥要放my_里
如果我的网站只是要求显示用户的用户在顶端,只有当他要发布评论的时候才强制要求他登陆的话
我是不是可以把这个判断放在view的header里呢

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

我这么想有没有什么问题?

gz123 发表于 2008-10-24 10:06:30

麻烦能说详细些,谢谢了!!

gz123 发表于 2008-10-24 10:52:06

原帖由 Hex 于 2008-10-24 01:39 发表 http://codeigniter.org.cn/forums/images/common/back.gif
我放到 MY_Controller 中


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

<?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

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 发表 http://codeigniter.org.cn/forums/images/common/back.gif
如果我的网站只是要求显示用户的用户在顶端,只有当他要发布评论的时候才强制要求他登陆的话
我是不是可以把这个判断放在view的header里呢

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

wood 发表于 2008-10-24 22:49:45

原帖由 沧蓝 于 2008-10-24 11:43 发表 http://codeigniter.org.cn/forums/images/common/back.gif


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

但如果不发布评论的话也要在顶端显示用户名或者guest啊

Hex 发表于 2008-10-25 10:47:43

wood: 你可以做一个判断是否登录的 Helper,放在 view 中。
然后可以根据判断结果来决定显示什么,但是逻辑一定不要放到视图中,视图只根据条件显示内容就可以了。

lanhun 发表于 2008-10-28 01:58:42

我弄了个判断是否登录的HELPER要判断的时候就调用那个函数

不知道这样写好不好我连判断逻辑都写那个函数里了
页: [1] 2
查看完整版本: 判断用户是否登陆各位一般写在哪里?