多级注册/登录系统


Multilevel register/login system

我想创建一个包含 2 种用户类型的多级注册/登录系统:管理员和普通用户。我已经阅读了一些文章和教程,但我仍然有一些问题。我知道我需要有一个包含以下列的表格:用户名、密码和类型(0 - 普通用户,1 - 管理员),当用户尝试登录时,他将根据类型被重定向到某个页面。

现在,普通用户的注册过程非常简单,但我的问题是,如何注册管理员用户?

您是否使用 sql 直接在数据库中添加管理员用户?您是否为此创建了一个特殊的PHP页面?

就像我说的,我已经阅读了一些教程,但我没有找到这个问题的答案。

提前感谢!

这取决于您要编写的应用程序/网站的类型。

如果您计划构建一个扩展的模块化站点,则直接通过 SQL 添加管理员不是正确的方法。那么最好有一个单独的页面,只有现有的管理员或操作员(这将需要更多的等级,但在任何更大的系统中,无论如何都有两个以上的等级)可以访问。

但是,如果您只是想测试一下,那么通过SQL添加这些特殊帐户比仅为此目的编写单独的页面需要的工作量要少得多。

请注意,用户/组权限管理是一个关键的安全部分,因此请确保检查服务器上的内容(-->输入验证)。

添加内容 :根据项目的大小和要实现的可伸缩性,您可以考虑为用户/组的权限提供单独的表,这些表可以使用 JOIN 包含在您的 SQL 语句中。

这取决于开发人员。我建议您在数据库中创建一行用于分配用户角色,并将用户重定向到管理仪表板或用户仪表板。如果是 为了您的个人需要 ,您可以创建一个管理仪表板并将其放在服务器中的某个位置,并在需要修改网站时访问它......

你可以在那里使用我的逻辑

public function aksi_login(){
            $valid_user=$this->login_mod->check_credential();
            if ($valid_user==FALSE) {
                $this->session->set_flashdata('error','Wrong Username/Password');
                redirect('login');
            }else{
                $this->session->set_userdata('username',$valid_user->username); 
                $this->session->set_userdata('foto',$valid_user->foto);
                $this->session->set_userdata('id_jurusan',$valid_user->id_jurusan); 
                switch ($valid_user->id_jurusan) {
                    case 1: //admin
                            redirect('guru');
                            break;
                    case 2: //member
                            redirect(base_url());
                            break;
                    default:
                        break;
                }
            }
    }
    public function logout(){
        $this->session->sess_destroy();
        redirect('login');
    }

您可以使用我的逻辑模型代码点火器登录

public function check_credential(){
        $email=set_value('email');
        $password=set_value('password');
        $hasil=$this->db->where('email',$email)
                        ->where('password',$password)
                        ->limit(1)
                        ->get('user');  
        if ($hasil->num_rows()>0) {
            return $hasil->row();
        }else{
            return array();
        }
    }
    function all($table){
        return $this->db->get($table);
    }
    public function input($data,$table){
        return $this->db->insert($table,$data);
    }