Настройка Codeigniter HMVC с помощью Tank auth
У меня возникли проблемы с получением рабочей версии Codeigniter 2.0.3 с настройкой HMVC и tank auth (настроенной как модуль). Я установил CI properlly, а затем установил HMVC с этими направлениями https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home
Я получаю мой приветственный контроллер / вид в качестве примера просто отлично, что означает, что HMVC работает. Затем я пытаюсь добавить Tank auth в проект, добавив его в папку в модулях папка. Он имеет правильный контроллер / вид / модель и т. д.. настройка внутри бака auth. Я даже добавил в маршруты что-то вроде
$route ["auth"]= "auth / login";
Я также расширил контроллер в модуле 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;
Кажется, что он перенаправляет штраф на модуль, однако он приходит с ошибкой, говоря ::
Ошибка
не удалось загрузить запрошенный класс: security
что я делаю не так? У кого-нибудь есть рабочая установка CI с HMVC и Tank auth в качестве модуля, чтобы я мог видеть, как это делается? Я новичок в HMVC, спасибо
7 ответов
Я нашел такую же проблему, но я решил, просто добавив комментарий
$this->load->library('security');
так это будет выглядеть так:
//$this->load->library('security');
поскольку безопасность теперь является частью ядра codeigniter, я думаю, что он уже загружен по умолчанию, и все, кажется, работает довольно хорошо
сейчас в Помощник по CodeIgniter 3.0 руководство пользователя
попробуй:
$this->load->helper('security');
я исправляю это, создавая на application/libraries
каталог со следующим кодом:
require_once(BASEPATH.'core/Security.php');
class Security extends CI_Security { }
Я нашел решение, я просто взял в безопасности.php-файл из папки codeigniters system / core и опустил его в систему/библиотеки.
переместить файл
security.php
сsystem/core
tosystem/libraries
затем измените
core/codeigniter.php
номер строки 204 из$SEC =& load_class('Security', 'core');
до$SEC =& load_class('Security', 'libraries');
безопасность.php присутствует в " codeigniter/system/core/Security.РНР" поэтому предоставьте этот путь, ваша проблема будет решена легко
load->library('../core/security');
Я Прочитал CodeIgniter 3.X руководство пользователя, и я обнаружил, что" безопасность "теперь доступна в качестве "помощника".
поэтому вам нужно изменить это;
$this->load->library('security');
на
$this->load->helper('security');
фильтрация XSS
класс ввода имеет возможность автоматически фильтровать Ввод, чтобы предотвратить атаки межсайтовых сценариев. Если вы хотите, чтобы фильтр запускался автоматически каждый раз, когда он сталкивается с данными POST или COOKIE, вы можете включить его, открыв application / config / config.php-файл и установить этот:
$config['global_xss_filtering'] = TRUE;
вам нужно прочитать руководство пользователя CodeIgniter 3.0 есть так много изменений и реализации или см. журнал изменений.