我有这个CodeIgniter控制器,我只是尝试一下,如果用户有一个或两个角色,他可以访问这个控制器,否则它将重定向它,但它无法正常工作。请Hlep。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Users extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->helper('my_helper');
$userAdmin=$this->session->userdata('_manage');
if($userAdmin==false){
redirect(base_url()."manage/index");
exit();
}
$userRole=$this->session->userdata('_manage_role');
if($userRole != 1 || $userRole != 2){
redirect(base_url()."manage/index");
exit();
}
$this->load->model('UserModel');
}
// Manage Section > All Users Pagse > All Users
public function index()
{
$Users = $this->UserModel->allUsers();
$assignData=array('users'=>$Users);
$this->load->view('manage/header',$assignData);
$this->load->view('manage/users');
$this->load->view('manage/footer');
}
public function deleteUser($user_id)
{
$this->userModel->deleteUser($user_id);
redirect(base_url().'manage/users');
}
}
答案 0 :(得分:0)
我想你想要这一行:
if($userRole != 1 || $userRole != 2) { redirect(...) }
是
if($userRole != 1 && $userRole != 2) { redirect(...) }
如果拆分||测试两个if,它变成:
if ($userRole != 1) { redirect(...) }
if ($userRole != 2) { redirect(...) }
如果$ userRole = 1,则第一个if失败。如果$ userRole = 2则失败第二个if。所以也没有办法过去。