class MY_Controller extends CI_Controller
{
public $data = array();
function __construct()
{
parent::__construct();
if($this->session->userdata('group_id') == FALSE) {
redirect('user/login');
}else {
//How download sessions?
//How Get the session given group_id?
//How Redirect to the appropriate controller?
if grup_id == 1 then goto administrator/dashboard
//if not exist grup id then goto /index
}
}
}
IN CODEIGNITER FRAMEWORK PHP
你可以试试这个方法。
class MY_Controller extends CI_Controller
{
public $data = array();
function __construct()
{
parent::__construct();
if($this->session->userdata('group_id') == 1) {
redirect('administrator/dashboard');
} esle if($this->session->userdata('group_id') == 2) {
redirect('manager/dashboard');
} esle if($this->session->userdata('group_id') == 3) {
redirect('user/dashboard');
} else {
redirect('user/login');
}
}
}
根据您想要实现的目标,您可以查看验证库https://github.com/benedmunds/CodeIgniter-Ion-Auth。使用满足您需求的现有库可以极大地提高项目的开发速度。
类型不匹配。Group_id是int或null,不是布尔值。为了避免反复调用session的成员函数,也要从session中检索一次值并将其赋值给一个变量。
function __construct()
{
parent::__construct();
group_id = $this->session->group_id;
if (is_int(group_id)) // if group_id is set and assigned an int
{
switch ($group_id)
{
case 1:
redirect('administrator/dashboard');
break;
...
default:
redirect('defaultpage');
}
}
else
{
redirect('user/login');
}
}
话虽这么说,但您可能不想重新发明轮子并使用ion_auth (CI的用户管理和身份验证类)。