Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用codeigniter在php中执行权限?_Php_Codeigniter - Fatal编程技术网

如何使用codeigniter在php中执行权限?

如何使用codeigniter在php中执行权限?,php,codeigniter,Php,Codeigniter,我已经用Codeigniter框架构建了包含主题、用户、评论、用户配置文件和会话的小型php脚本,但我现在不知道如何为用户授予权限 我的意思是如何使只有注册的人才能添加主题和评论之类的东西 我试着通过训练来达到目的 if($this->session->userdata('is_logged_in')) { // here something like add topic or comment buttons } 我说得对吗?这是做权限的唯一方法吗?或者还有其他更好的方

我已经用Codeigniter框架构建了包含主题、用户、评论、用户配置文件和会话的小型php脚本,但我现在不知道如何为用户授予权限

我的意思是如何使只有注册的人才能添加主题和评论之类的东西

我试着通过训练来达到目的

if($this->session->userdata('is_logged_in'))
{
    // here something like add topic or comment buttons 
} 

我说得对吗?这是做权限的唯一方法吗?或者还有其他更好的方法吗?

您没有提到您使用的CI版本,但对于2.x(CodeIgniter v3要求类名为ucfirst()),我发现ion_auth非常好,并且非常易于设置。你可以在这里买到。 它有一些不错的功能,您可以通过指定的组或主“登录”方法限制某些视图/页面或方法

要放入构造中的脚本非常简单

     if (!$this->ion_auth->logged_in()){
              redirect('auth/login', 'refresh');
 }

我不认为这样的东西在ci中是可用的,但您可以通过使用user\u type或对您的用户进行分类来实现

类似于管理员用户\u type=“admin”或1

对于客户用户\u type=“客户”或2


我在2年前就实现了这个东西,到现在为止,它从来没有遇到任何问题,甚至进一步的修改,比如创建另一个组,都非常简单。

我看到数据库中已经有一个名为“users”的表,添加一个新列,我们称之为“privilege”,它将包含用户权限的代码,假设0代表管理员,1代表客户,2代表来宾…等等

假设只有管理员和客户可以发表评论,那么您的代码将检查用户权限并做出相应的决定

伪代码:

if($this->session->userdata('is_logged_in'))
{
     // let say the user_id is loaded in the session
     $user_id = $this->session->userdata('user_id');

     $this->load->model('user_mdl');
     $user_priv = $this->user_mdl->get_user_priv($user_id);

     if($user_priv == 0 or $user_priv == 1)
     {
        // here something like add topic or comment buttons 
     }
    else
    {
      // sorry you don't have permission to do comment or something interesting 
    }


} 
如果希望规范化它,而不是在users表中设置列,您还可以创建一个新的表“privileges”,并将它(通过外键)链接到用户

希望有帮助
干杯

如果不知道用户部分(即用户表和相关模型控制器)是如何制作的,就很难说了。但您的代码是实现它的好方法。