2011-08-30 22 views
10

Tôi gặp sự cố khi tải phiên bản Codeigniter 2.0.3 với thiết lập hmvc và auth tank (được thiết lập làm mô-đun) đúng cách. Tôi đã cài đặt CI đúng cách và sau đó cài đặt HMVC theo các hướng dẫn này https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/HomeThiết lập Codeigniter HMVC với xe tăng auth

Tôi nhận được bộ điều khiển/xem chào mừng của mình như ví dụ tốt, có nghĩa là HMVC đang hoạt động. Tiếp theo, tôi cố gắng thêm auth của tank vào dự án bằng cách thêm nó vào một thư mục trong thư mục modules. Nó có bộ điều khiển/xem/mô hình thích hợp, vv .. thiết lập trong auth bể. Tôi thậm chí còn thêm vào các tuyến đường giống như

$ route ["auth"] = "auth/login";

Tôi cũng mở rộng bộ điều khiển bên trong mô-đun auth thành MX_Controller như hướng dẫn. Cũng trong constructor tôi có:

$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; 

Nó dường như được chuyển hướng tốt để các mô-đun tuy nhiên nó đi kèm với một lỗi nói ::

Một lỗi đã gặp

Không thể tải các yêu cầu class: security

Tôi đang làm gì sai? Có ai có cài đặt CI hoạt động với HMVC và auth tank làm module để tôi có thể xem nó được thực hiện như thế nào không? Tôi mới sử dụng HMVC, nhờ

+0

Tệp security.php có tồn tại trong thư viện-thư mục không? – Tobias

+0

security.php là một phần của codeigniter vì vậy nó không nằm trong thư mục modules/auth/libraries/.... Tôi có phải lấy trường hợp của CI để gọi các thư viện/người trợ giúp của nó trong constructor của một bộ điều khiển mô-đun? –

+0

Vì vậy, tôi đã thay đổi $ this-> load-> library ('security'); đến $ this-> load-> helper ('security'); và bây giờ một lỗi mới xảy ra, tôi nghĩ rằng khi nó cố gắng để tải thư viện tank_auth, nói rằng tập tin cấu hình tank_auth.php không thể được tìm thấy .. mặc dù có module/modulename/config/tank_auth.php còn nguyên vẹn. Không có lý do tại sao nó tìm thấy nó nhưng tôi giả sử nó simliar để các vấn đề khác của tôi –

Trả lời

4

tôi thấy cùng một vấn đề, nhưng tôi giải quyết bằng cách đơn giản thêm một nhận xét cho số

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

vì vậy nó sẽ giống như thế này:

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

từ an ninh của nó bây giờ là một phần của lõi CodeIgniter, tôi đoán nó đã được nạp theo mặc định, và tất cả mọi thứ dường như được làm việc khá tốt

+0

thử này: $ this-> load-> helper ('security'); – Haseeb

+0

và thay thế '$ this-> security-> xss_clean();' thành 'xss_clean(); –

0

Tôi đã tìm thấy giải pháp, tôi chỉ cần lấy tệp security.php từ thư mục systemigniters/core và thả nó vào hệ thống/thư viện.

0
  • di chuyển các tập tin security.phpsystem/core-system/libraries

  • sau đó chỉnh sửa core/codeigniter.php dòng số 204 từ $SEC =& load_class('Security', 'core'); để $SEC =& load_class('Security', 'libraries');

2

tôi sửa lỗi này, bằng cách tạo Security.php tập tin trong thư mục application/libraries với đoạn mã sau:

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

class Security extends CI_Security { } 
0

Security.php có mặt trong "CodeIgniter/system/lõi/Security.php" để cung cấp con đường này vấn đề của bạn được giải quyết một cách dễ dàng

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

nó là trong Helper bây giờ theo CodeIgniter 3.0 user guide

thử:

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

vì vậy bạn có nghĩa đây là người trợ giúp không phải là thư viện –

+1

có nó là người trợ giúp. – Haseeb

0

Tôi đã đọc CodeIgniter 3.Hướng dẫn sử dụng X và tôi đã thấy rằng "Bảo mật" hiện có sẵn dưới dạng 'trợ giúp'.

Vì vậy, bạn cần phải thay đổi điều này;

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

vào

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

XSS Filtering

Lớp Input có khả năng lọc đầu vào tự động để ngăn chặn các cuộc tấn công cross-site scripting. Nếu bạn muốn các bộ lọc để chạy tự động mỗi khi nó gặp POST hoặc dữ liệu COOKIE bạn có thể kích hoạt nó bằng cách mở tập tin application/config/config.php của bạn và thiết lập này:

$config['global_xss_filtering'] = TRUE; 

Bạn cần phải đọc một tài CodeIgniter 3.0 Hướng dẫn có quá nhiều thay đổi và triển khai hoặc vui lòng tham khảo nhật ký thay đổi.

Các vấn đề liên quan