Настройка Codeigniter HMVC с аутентификацией бака - PullRequest
10 голосов
/ 30 августа 2011

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

В качестве примера я попадаю в свой приветственный контроллер / просмотр, что означает, что HMVC работает. Затем я пытаюсь добавить танк аутентификации в проект, добавив его в папку в папке модулей. Он имеет надлежащий контроллер / вид / модель и т. Д., Настроенный в рамках аутентификации бака. Я даже добавил в маршруты что-то вроде

$ маршрут [ "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 и аутентификацией бака в качестве модуля, чтобы я мог видеть, как это делается? Я новичок в HMVC, спасибо

Ответы [ 7 ]

4 голосов
/ 18 мая 2015

теперь в Helper согласно CodeIgniter 3.0 руководство пользователя

попробовать:

$this->load->helper('security');
4 голосов
/ 10 октября 2011

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

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

, чтобы он выглядел так:

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

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

2 голосов
/ 02 сентября 2012

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

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

class Security extends CI_Security { }
0 голосов
/ 20 января 2016

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

Так что вам нужно изменить это;

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

into

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

XSS-фильтрация

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

$config['global_xss_filtering'] = TRUE;

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

0 голосов
/ 02 апреля 2013

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

load->library('../core/security');
0 голосов
/ 05 октября 2011
  • переместить файл security.php из system/core в system/libraries

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

0 голосов
/ 31 августа 2011

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

...