多级register/login系统
Multilevel register/login system
我想创建一个多级 register/login 系统,有两种类型的用户:管理员和普通用户。
我已经阅读了一些文章和教程,但我仍然有一些疑问。我知道我需要一个包含以下列的 table:用户名、密码和类型(0 - 普通用户,1 - 管理员),当用户尝试登录时,他将被重定向到基于某个页面在类型上。
现在,普通用户的注册过程非常简单,但我的问题是,如何注册管理员用户?
你是直接在数据库中使用sql添加admin用户吗?您是否为此创建了一个特殊的 PHP 页面?
就像我说的,我已经阅读了一些教程,但我没有找到这个问题的答案。
提前致谢!
这取决于 developer.I 建议您在数据库中创建一行以分配用户角色并将用户重定向到管理仪表板或用户仪表板。如果是您个人需要,您可以创建一个管理仪表板并将其放在服务器中的某个位置,并在您需要修改网站时访问它...
这取决于您要编码的应用程序/网站的类型。
如果您计划构建一个扩展的模块化站点,直接通过 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');
}
你可以使用我的逻辑模型codeigniter登录
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);
}
我想创建一个多级 register/login 系统,有两种类型的用户:管理员和普通用户。 我已经阅读了一些文章和教程,但我仍然有一些疑问。我知道我需要一个包含以下列的 table:用户名、密码和类型(0 - 普通用户,1 - 管理员),当用户尝试登录时,他将被重定向到基于某个页面在类型上。
现在,普通用户的注册过程非常简单,但我的问题是,如何注册管理员用户?
你是直接在数据库中使用sql添加admin用户吗?您是否为此创建了一个特殊的 PHP 页面?
就像我说的,我已经阅读了一些教程,但我没有找到这个问题的答案。
提前致谢!
这取决于 developer.I 建议您在数据库中创建一行以分配用户角色并将用户重定向到管理仪表板或用户仪表板。如果是您个人需要,您可以创建一个管理仪表板并将其放在服务器中的某个位置,并在您需要修改网站时访问它...
这取决于您要编码的应用程序/网站的类型。
如果您计划构建一个扩展的模块化站点,直接通过 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');
}
你可以使用我的逻辑模型codeigniter登录
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);
}