codeigniter_lht 发表于 2013-4-4 09:11:31

【权限小问题】求大神指点迷径!求求求求求求求求求求

新人,求照顾 {:soso_e165:}{:soso_e165:}


1、大神们加载权限判断可是在__construct()里面判断的?


2、判断可是写在core下的MY_Controller里面的吗


3、程序执行的时候先执行__construct()吧?然后判断权限不符合就弹出提示吧?
   
   现在我的问题是:
程序先执行了操作,然后才去执行__construct()里面的$this->check_permit()检查权限。 就是说,先执行了一个删除,然后删除完了,才弹出来窗口:”您好没有执行该目录的权限!“


请问这是什么问题呢? 下面有贴代码。。。麻烦大牛们看看{:soso__8162090667950128385_1:}




控制器下的:



class Admin extends MY_Controller{
                function __construct(){
                        parent::__construct();
                        $this->check_permit();
                        $this->load->helper('url');
                        ...
                }
...

}


//MY_Controller.php下的:
protected function check_permit($action = '', $folder = '')
                {
                        if ( ! $this->permit($action, $folder))
                        {
                                echo "<script language='javascript'>alert('您没有访问该目录的权限!');self.location.href='".base_url()."index.php/admin/right';</script>";
                                return FALSE;
                        }
                }

private function permit($act = '', $folder = ''){

//.........验证权限的代码.........(用in_array()匹配的方式)
}


//就这样,每次都是先执行操作,操作完成后才执行验证,快崩溃了 !






































codeigniter_lht 发表于 2013-4-4 09:13:27

{:soso__3669389859068460655_3:}有大神愿意指点一二吗?新手感激不尽!

Altair 发表于 2013-4-4 10:08:24

目测是你的逻辑本身有些问题,判断没有权限后,你不应该用ECHO

Altair 发表于 2013-4-4 10:10:03

echo "<script language='javascript'>alert('您没有访问该目录的权限!');self.location.href='".base_url()."index.php/admin/right';</script>";改成这样试试
show_error("<script language='javascript'>alert('您没有访问该目录的权限!');self.location.href='".base_url()."index.php/admin/right';</script>");

codeigniter_lht 发表于 2013-4-4 10:54:58

本帖最后由 codeigniter_lht 于 2013-4-4 10:57 编辑

Altair 发表于 2013-4-4 10:10 static/image/common/back.gif
改成这样试试
哈哈哈哈哈哈哈哈哈哈,就是这样,这是为什么呢?

为什么换成show_error();就好了呢?

现在唯一的不完美的地方是:
http://baidu.weichanke.com/images/show_error.png

这个错误怎么不让它显示?

codeigniter_lht 发表于 2013-4-4 10:57:35

An Error Was Encountered

codeigniter_lht 发表于 2013-4-4 12:48:25

搞定啦!

show_error('消息' [, int $status_code = 500 ] [, string $heading = 'An Error Was Encountered'])

这样就可以改掉~~,感谢Altair!

Altair 发表于 2013-4-4 21:40:09

:victory:

依娇赏月 发表于 2013-4-19 16:03:16

走到这了,一百元,拿起,谢谢了:@

依娇赏月 发表于 2013-4-19 16:17:47

altair 留一点问题给楼主, 楼主也是忽悠看帖者,:@ 把前面的函数去掉不就行啦:L
页: [1]
查看完整版本: 【权限小问题】求大神指点迷径!求求求求求求求求求求