2012-04-17 29 views
22

Tôi nhận thấy mã nhỏ này trên một bộ điều khiển trên một dự án trình mã hóa demo và tự hỏi nó đã làm gì và liệu tôi có nên sử dụng nó hay không.Codeigniter xác định basepath hoặc thoát

defined('BASEPATH') OR exit('No direct script access allowed'); 

Ngoài ra nếu tôi nên sử dụng nó nên được sử dụng ở đâu? bộ điều khiển? mô hình? cả hai? v.v.

Trả lời

41

để kích hoạt khung giới thiệu mã trang web phải truy cập bằng www.blahblah.com/index.php/params. Bằng cách đi qua index.php trước, khung công tác được kích hoạt và các lớp khác nhau và không được chạy qua PHP. Khung sau đó xem xét các tham số của url và kích hoạt một bộ điều khiển cụ thể. Dòng mã này đảm bảo rằng khung công tác đã được "khởi động" đúng cách và người dùng không chỉ cố gắng chạy tệp php duy nhất trên máy chủ web. Bởi vì tệp php đó giả định rằng các lớp bên trong khung công tác đã được khai báo, nên việc chạy một tệp bộ điều khiển sẽ không thành công và có khả năng vi phạm bảo mật. Không cho phép truy cập trực tiếp.

+4

+1 khá nhiều vị trí trên. Cũng nên lưu ý nó làm cho đơn vị thử nghiệm một cơn đau. – AlienWebguy

+0

oh được rồi, đoạn mã này cũng thuộc về phần đầu của mô hình hay chỉ là bộ điều khiển? Cảm ơn –

+1

Nếu bạn đang đi theo cách CI, nó thuộc về chỉ là về mọi kịch bản trong cài đặt của CI. Lưu ý @ AlienWebGuy của bình luận về thử nghiệm, mặc dù ... – rjz

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