Я создаю веб-сайт, на котором у меня есть страница администратора и пользователя. У меня проблема с тем, что я могу получить доступ к странице администратора через URL, даже если я вошел в систему как пользователь. У меня есть проверки на странице входа в систему, однако, если я уже вошел в систему как пользователь или как администратор, я могу получить доступ ко всем страницам. Я хочу ограничить страницы только их ролями. Вот мой код. Пожалуйста, помогите мне, спасибо.
Это мой контроллер
class login extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->helper('url','html');
$this->load->model('login_model');
}
public function index(){
$this->load->view('login');
}
public function verify_login()
{
$data = $this->login_model->verify_login();
if ($data) {
$userdata = array('id' => $data[0]['user_id'] , 'name' => $data[0]['full_name'], 'type' => $data[0]['user_type'] );
$this->session->set_userdata('login_info',$userdata);
if($userdata['type'] == 0) {
header("Location: ".base_url()."home");
}
else {
header("Location: ".base_url()."reports_controller");
}
}
else{
header("Location: ".base_url()."login");
}
}
public function logout(){
$this->session->sess_destroy('login_info');
header("Location: ".base_url()."login");
}
}
Сначала вы должны проверить, что вернет значение вашего сеанса, затем вы можете ограничить URL. Используйте это для проверки вашего сеанса.
$ session = $ this-> session-> userdata (‘login_info’);
$ type = $ session [‘type’];
Других решений пока нет …