Настройка Codeigniter HMVC с автореф.

У меня возникли проблемы с правильной настройкой нормальной версии Codeigniter версии 2.0.3 с настройкой hmvc и tank auth (настройка в качестве модуля). Я правильно установил CI, а затем установил HMVC с этими направлениями https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home

Я добираюсь до своего приветственного контроллера/представления в качестве примера просто отлично, что означает, что HMVC работает. Затем я пытаюсь добавить auth к проекту, добавив его в папку в папке модулей. У этого есть надлежащий контроллер/вид/модель и т.д. Установка в пределах auth. Я даже добавил в маршруты что-то вроде

$маршрут [ "Auth" ] = "авториз/Логин";

Я также расширил контроллер в модуле auth до MX_Controller, как и по указанию. Также в конструкторе у меня есть:

$this->load->helper(array('form', 'url'));
    $this->load->library('form_validation');
    $this->load->library('security'); <--failing to load this

    $this->load->library('tank_auth');
    $this->lang->load('tank_auth');
     $this->form_validation->CI =& $this;

Кажется, он перенаправляет тонкий модуль, но в нем появляется сообщение об ошибке:

Обнаружена ошибка

Невозможно загрузить запрошенный класс: безопасность

Что я делаю неправильно? У кого-нибудь есть рабочая установка CI с HMVC и auth в качестве модуля, чтобы я мог видеть, как это делается? Я новичок в HMVC, спасибо

Ответ 1

Я нашел ту же проблему, но я решил простым добавлением комментария к

$this->load->library('security');

поэтому он будет выглядеть следующим образом:

//$this->load->library('security');

так как защита его теперь является частью ядра codeigniter, я думаю, что он уже загружен по умолчанию, и все, кажется, работает довольно хорошо

Ответ 3

Я исправлю это, создав Security.php файл в каталоге application/libraries со следующим кодом:

require_once(BASEPATH.'core/Security.php');

class Security extends CI_Security { }

Ответ 4

Я нашел решение, я просто взял файл security.php из системной/основной папки codeigniters и бросил его в систему/библиотеки.

Ответ 5

  • переместите файл security.php с system/core на system/libraries

  • затем отредактируйте строку core/codeigniter.php номер строки 204 от $SEC =& load_class('Security', 'core'); до $SEC =& load_class('Security', 'libraries');

Ответ 6

Security.php присутствует в "codeigniter/system/core/Security.php" поэтому предоставьте этот путь, ваша проблема будет решена легко

load->library('../core/security');

Ответ 7

Я прочитал руководство пользователя CodeIgniter 3.X, и было обнаружено, что "Безопасность" доступна как "помощник". Теперь

Итак, вам нужно изменить это;

$this->load->library('security');

в

$this->load->helper('security');

Фильтрация XSS

Класс Input имеет возможность автоматически фильтровать вход, чтобы предотвратить атаки на межсайтовый скриптинг. Если вы хотите, чтобы фильтр запускался автоматически каждый раз, когда он обнаруживает данные POST или COOKIE, вы можете включить его, открыв файл application/config/config.php и установив это:

$config['global_xss_filtering'] = TRUE;

Вам необходимо прочитать Руководство пользователя CodeIgniter 3.0, так много изменений и реализации или , пожалуйста, см. журнал изменений.