2016-05-12 2 views
-1

У меня есть сайт, который написал с codeigniter. мой сайт имеет 2 уровня.Подтвердить пользователя на всех страницах сайта в codeigniter

  1. админ
  2. пользователь

когда Войти, как пользователь мой веб-сайт не ошибка и работать правильно, но когда я не лог, и введите в панель администратора URL в браузере пользователь может получить доступ к параметры панели администратора и наоборот.

как решить эту ошибку.

+0

задайте тип пользователя в базе данных и проверьте страницы администратора из сеанса, если зарегистрированный пользователь является администратором или нет. – Poria

+0

Используйте отдельную переменную сеанса для администратора и пользователя. –

+0

тип пользователя уже установлен. пользователь с типом url может получить доступ ко всем параметрам панели администратора. этот путь должен быть проверен на всей странице. есть ли другой способ? @poria –

ответ

1

это то, что я сам использую: Добавить его в верхней части контроллера под «класса Welcome расширяет CI_Controller {»

public function login_check($user){ 
    if(isset($_SESSION['user'])) 
    { 
     if($_SESSION['user'] == $user) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     } 
    } 
    else 
    { 
     return false; 
    } 
} 

и создавать свои функции страницы, как это:

public function index() 
{ 
    if($this->login_check('admin')) 
    { 
     $this->load->view('welcome_message'); 
    } 
    else 
    { 
     //Redirect here. 
    } 

} 
0

Создайте библиотеку с любым именем i created Users.

class Users 
{ 
    public function __construct() 
    { 
     $this->ci =& get_instance(); 
    } 

    function _is_admin() 
    { 
     if($this->ci->session->user_type != 'admin') 
     { 
      redirect('verify_user'); 
     } 
    } 

    function _is_user() 
    { 
     if($this->ci->session->user_type != 'user') 
     { 
      redirect('verify_user'); 
     } 
    } 
} 

Загрузите библиотеку или поместить его в автозагрузку, чтобы в application/config/autoload.php

Тогда просто вызвать функцию в верхней части ваших методов, один вы хотите ограничить.

function abc() 
{ 
    $this->users->_is_admin(); 
    // your code 
} 

Если вы хотите ограничить весь метод контроллера затем добавить этот метод в Constructor

0

Вы должны использовать _remap функцию в контроллере, чтобы обрабатывать все запросы и в этой функции вы должны иметь две основные части, первые для функций администратора, а второй для других ...

Смежные вопросы