1. Trang chủ
  2. » Công Nghệ Thông Tin

xây dựng web với codeigniter

38 654 9

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 38
Dung lượng 4,52 MB

Nội dung

MỤC LỤC CHƯƠNG TỔNG QUAN VỀ CODEIGNITER GIỚI THIỆU Tổng quan CodeIgniter tảng ứng dụng web nguồn mở viết ngôn ngữ PHP Rick Ellis (CEO EllisLab, Inc) Phiên phát hành ngày 28.02.2006, phiên tại: 1.7.2 (phát hành ngày 11.09.2009) Ý tưởng xây dựng CodeIgniter dựa Ruby on Rails, tảng ứng dụng web viết ngôn ngữ Ruby Hiện tại, CodeIgniter phát triển ExpressionEngine Development Team thuộc EllisLab, Inc 1.2 Những điểm bật Được thiết kế theo mô hình Model-View-Controller: Mô hình MVC giúp tách thành phần hiển thị giao diện (presentation) xử lý (business logic) phần mềm thành thành phần độc lập, từ giúp cho việc thiết kế, xử lý bảo trì mã nguồn dễ dàng, đồng thời tăng khả mở rộng phần mềm CodeIgniter vận dụng mô hình thiết kế, giúp tách biệt tập tin giao diện với tập tin xử lý liệu, nâng cao khả quản lý dễ bảo trì Nhỏ gọn: Gói cài đặt 404KB (không bao gồm phần User Guide) So với PHP framework khác CakePHP (1.3MB), Symfony (5.08MB) hay Zend Framework (5.66MB)…kích thước CodeIgniter giúp giảm thiểu đáng kể không gian lưu trữ Tốc độ nhanh: CodeIgniter đánh giá PHP framework có tốc độ nhanh Bằng chế lưu nội dung vào đệm (cache), kiểm tra đệm trước tiến hành thực yêu cầu, CodeIgniter giảm số lần truy cập xử lý liệu, từ tối ưu hóa tốc độ tải trang Miễn phí: CodeIgniter phát hành giấy phép Apache/BSD mở rộng, cho phép người dùng tự thay đổi, phát triển phân phối mã nguồn Hỗ trợ Search Engine Optimization: Cấu trúc URL CodeIgniter thân thiện với robot tìm kiếm Hệ thống thư viện phong phú: CodeIgniter cung cấp thư viện phục vụ cho tác vụ thường gặp lập trình web, chẳng hạn truy cập sở liệu, gửi email, kiểm tra liệu, quản lý session, xử lý ảnh…đến chức nâng cao XML-RPC, mã hóa, bảo mật… Bảo mật hệ thống: Cơ chế kiểm tra liệu chặt chẽ, ngăn ngừa XSS SQL Injection CodeIgniter giúp giảm thiểu nguy bảo mật cho hệ thống 1.1 Những điểm hạn chế Chưa hỗ trợ Object-Relational Mapping: Object Relational Mapping (ORM) 1.3 kỹ thuật lập trình, bảng sở liệu ánh xạ thành đối tượng chương trình Kỹ thuật giúp cho việc thực thao tác sở liệu (Create Read Update Delate – CRUD) dễ dàng, mã nguồn ngắn gọn Hiện tại, CodeIgniter chưa hỗ trợ ORM Chưa hỗ trợ AJAX: AJAX (Asynchronous JavaScript and XML) trở thành phần thiếu ứng dụng Web 2.0 AJAX giúp nâng cao tính tương tác người dùng hệ thống, giúp cho người dùng có cảm giác sử dụng ứng dụng desktop thao tác diễn “tức thời” Hiện tại, CodeIgniter chưa có thư viện dựng sẵn để hỗ trợ xây dựng ứng dụng AJAX Lập trình viên phải sử dụng thư viện bên ngoài, jQuery, Script.aculo.us, Prototype hay Mootools… Chưa hỗ trợ số module thông dụng: So sánh với framework khác, CodeIgniter module thực thi số tác vụ thường gặp trình xây dựng ứng dụng web Chứng thực người dùng (User Authorization), Trình phân tích RSS (RSS Parser) hay Trình xử lý PDF… Chưa hỗ trợ Event-Driven Programming: Event-Driven Programming (EDP) nguyên lý lập trình, luồng xử lý hệ thống dựa vào kiện, chẳng hạn click chuột, gõ bàn phím…Đây khuyết điểm to lớn CodeIgniter tại, có số framework hỗ trợ EDP, bao gồm Prado, QPHP Yii Cài đặt Yêu cầu hệ thống: CodeIgniter hoạt động nhiều hệ điều hành server, yêu cầu có cài đặt PHP phiên 4.x cao hơn; hệ quản trị sở liệu: MySQL (4.1+), MySQLi, Mircrosoft SQL Server, Postgres, Oracle, SQLite, ODBC 1.4 Hướng dẫn cài đặt: Download nguồn CodeIgniter website http://codeigniter.com/, phiên tại: 1.7.2 Mở tập tin application/config/config.php chương trình soạn thảo, thay đổi giá trị $config['base_url'] Đây đường dẫn tuyệt đối đến thư mục CodeIgniter server Nếu ứng dụng có tương tác với sở liệu, thiết lập giá trị cần thiết tập tin application/config/database.php Upload tất thư mục tập tin CodeIgniter lên server Để nâng cao tính bảo mật hệ thống, người dùng đổi tên thư mục system CodeIgniter Sau đổi tên, người dùng phải thay đổi giá trị biến $system_folder tập tin index.php CHƯƠNG TÌM HIỂU VỀ NỀN TẢNG CODEIGNITER TÌM HIỂU Mô hình Model-View-Controller Model-View-Control (MVC) kiến trúc phần mềm, xem mẫu thiết kế công nghệ phần mềm Mô hình MVC tách biệt phần xử lý liệu khỏi phần giao diện, cho phép phát triển, kiểm tra bảo trì thành phần cách độc lập 2.1 Theo đó: Model thể cấu trúc liệu Các lớp thuộc thành phần Model thường thực tác vụ truy vấn, thêm, xóa, cập nhật liệu Khi liệu Model thay đổi, thành phần View cập nhật lại View thành phần thể liệu Model thành giao diện tương tác với người sử dụng Một Model có nhiều View tùy thuộc vào mục đích khác Controller đóng vai trò trung gian Model View Thông tin người dùng từ View gửi cho Controller xử lý, sau Controller tương tác với Model để lấy liệu yêu cầu, sau Controller trả liệu cho View Mô hình MVC thường sử dụng ứng dụng web, thành phần View (mã HTML/XHTML) sinh từ ngôn ngữ lập trình web Thành phần Controller nhận liệu GET/POST, xử lý liệu này, sau chuyển sang Model xử lý Model trả liệu phía Controller, sau Controller sinh mã HTML/XHTML để thể View 2.2 Cấu trúc CodeIgniter Hình 2: Cấu trúc CodeIgniter Tập tin index.php xem controller đầu vào, tiếp nhận yêu cầu từ phía client chuyển yêu cầu cho hệ thống xử lý Thư mục system bao gồm phần lõi CodeIgniter Chúng bao gồm cãc thư viện xây dựng sẵn, tập tin ngôn ngữ, ghi hệ thống Trong số đó, thư mục sau quan trọng: • • • • • Thư mục application: Dành cho lập trình viên, tập tin lập trình cho ứng dụng lưu thư mục Thư mục cache: Bộ đệm hệ thống, chứa trang xử lý trước Thư mục helpers: Chứa hàm hỗ trợ cho lập trình viên viết ứng dụng Thư mục libraries: Chứa thư viện dựng sẵn CodeIgniter Đối với lập trình viên, tập tin ứng dụng lưu thư mục system/application Trong đó: • • • • • • • • • Thư mục config: Chứa tập tin cấu hình hệ thống Thư mục controllers: chứa lớp controller Thư mục errors: chứa tập tin lỗi Thư mục helpers: chứa hàm tiện ích người dùng định nghĩa Thư mục hooks: chứa tập tin để mở rộng mã nguồn CodeIgniter Thư mục language: chứa tập tin ngôn ngữ Thư mục libraries: chứa thư viện cho người dùng dùng định nghĩa Thư mục models: chứa lớp model Thư mục views: chứa lớp view Ta đổi tên thư mục application thành tên tùy ý Sau đổi tên, cần thiết lập tên cho biến $application_folder tập tin index.php Ngoài ra, ta tạo nhiều ứng dụng cài đặt CodeIgniter cách tạo thư mục bên system/application Các thư mục có cấu trúc giống thư mục application gốc Chẳng hạn, ta có hai ứng dụng, foo bar Khi cấu trúc thư mục sau: Để biết tập tin index.php chạy ứng dụng nào, ta khai báo lại giá trị biến $application_folder 2.3 Dòng chảy liệu CodeIgniter Hình 3: Sơ đồ thể dòng chảy liệu CodeIgniter Tập tin index.php đóng vai trò làm controller đầu vào, thiết lập tài nguyên cần thiết cho hệ thống Routing: Quá trình điều hướng giúp xác định yêu cầu hướng xử lý chúng Caching: Nếu liệu yêu cầu lưu đệm, CodeIgniter trả liệu đệm phía client Quá trình xử lý kết thúc Security: Dữ liệu trước chuyển đến Controller lọc để phòng chống XXS SQL Injection Application Controller: Controller xử lý liệu nhận cách gọi đến Models, Libraries, Helpers, Plugins…có liên quan View: Dữ liệu chuyển qua View để hiển thị cho người dùng Nếu chức caching bật, liệu lưu cache cho lần yêu cầu Trong thực tế, ta cần xen vào bước sơ đồ Chẳng hạn, trước controller gọi, ta muốn lưu log xuống tập tin hệ thống CodeIgniter sử dụng chế hook cho phép ta thực việc Để kích hoạt hook, ta cần thay đổi giá trị biến $config['enable_hooks'] tập tin application/config/config.php: Các hook khai báo tập tin application/config/hooks.php, có mẫu sau: Trong đó: • • • • class: tên lớp gọi Nếu sử dụng hàm thủ tục, ta bỏ trống giá trị function: tên hàm/phương thức gọi filename: tên tập tin chứa lớp/hàm filepath: đường dẫn đến tập tin hook Nếu tập tin nằm thư mục application/hooks, ta cần đặt giá trị hooks Nếu tập tin nằm thư mục application/hooks/utilities, ta đặt giá trị • hooks/utilities Lưu ý, dấu / cuối params: tham số truyền vào cho hàm • Khóa pre_controller cho biết thời điểm hook thực CodeIgniter hỗ trợ thời điểm sau: • pre_system: gọi hệ thống vừa khởi động Ở giai đoạn có lớp benchmark hook kích hoạt Các tiến trình khác chưa xảy pre_controller: gọi trước controller hoạt động Các tiến trình routing security thực post_controller_constructor: gọi sau hàm tạo controller thi hành Các hàm controller chưa gọi post_controller: gọi sau controller thực xử lý yêu cầu display_override: thực việc chồng (override) hàm display() để hoàn tất nội dung trang trước gửi đến trình duyệt người dùng Nội dung trang lấy cách gọi $this->CI->output->get_output() cache_override: thực việc chồng hàm _display_cache() để lấy trang đệm scaffolding_override: không sử dụng từ CodeIgniter 1.6 post_system: gọi sau hệ thống thực xong yêu cầu • • • • • • • 2.4 CodeIgniter URL Theo mặc định, cấu trúc URL CodeIgniter thiết kế dựa vào segment thay cho kiểu query truyền thống Cách tiếp cận giúp URL trở nên ngắn gọn, có ý nghĩa, dễ ghi nhớ thân thiện với máy tìm kiếm Một URL CodeIgniter có dạng: • • • Trong đó: Segment controller tên lớp controller gọi Segment method tên phương thức lớp controller Segment param đối số phương thức Như vậy, URI domain.com/index.php/product/view/1 mang ý nghĩa: Gọi đến phương thức view() thuộc lớp Product với đối số truyền vào Định tuyến URI (URI Routing) Trong thực tế, URI domain.com/index.php/product/view/1 lại không thân thiện với máy tìm kiếm URI domain.com/index.php/product/view/appple-ipad-1 CodeIgniter cho phép lập trình Tạo sở liệu Để tạo sở liệu mới, ta sử dụng phương thức create_database() sau: Phương thức trả TRUE tạo sở liệu thành công, ngược lại trả FALSE Xóa sở liệu Để xóa sở liệu, ta sử dụng phương thức drop_database() sau: Phương thức trả TRUE xóa sở liệu thành công, ngược lại trả FALSE Liệt kê sở liệu Để liệt kê sở liệu có máy chủ, ta sử dụng phương thức list_databases() sau: Phương thức trả mảng chứa tên sở liệu Tối ưu hóa bảng liệu Để thực tối ưu hóa bảng liệu, ta sử dụng phương thức optimize_table() sau: Phương thức trả TRUE thực thành công, ngược lại trả FALSE Lưu ý, chức dành cho hệ quản trị sở liệu MySQL/MySQLi Sửa chữa bảng liệu Để thực sửa chữa bảng liệu, ta sử dụng phương thức repair_table() sau: Phương thức trả TRUE thực thành công, ngược lại trả FALSE Lưu ý, chức dành cho hệ quản trị sở liệu MySQL/MySQLi Tối ưu hóa sở liệu Để thực tối ưu hóa tất sở liệu có máy chủ, ta sử dụng phương thức optimize_database() sau: Phương thức trả mảng chứa thông báo trạng thái sở liệu thực thành công, ngược lại trả FALSE Lưu ý, chức dành cho hệ quản trị sở liệu MySQL/MySQLi Thêm bảng Để thêm bảng mới, ta sử dụng phương thức create_table() sau: Biến tùy chọn $ifNotExists thêm vào lệnh IF NOT EXISTS tạo bảng Phương thức trả TRUE thêm bảng thành công, ngược lại trả FALSE Xóa bảng Để xóa bảng, ta sử dụng phương thức drop_table() sau: Đổi tên bảng Để đổi tên bảng, ta sử dụng phương thức rename_table() sau: Thêm trường vào bảng Để thêm trường vào bảng, ta sử dụng phương thức add_field() sau gọi phương thức create_table() Các trường bảng tạo thông qua mảng quy ước, khóa mảng tên trường Mỗi trường lại mảng có khóa sau: • • • • • • unsigned: Nếu có giá trị TRUE, trường có thuộc tính UNSIGNED type: Kiểu liệu trường, chẳng hạn INT, VARCHAR, DATE… constraint: Một số kiểu liệu, chẳng hạn VARCHAR, yêu cầu phải cung cấp chiều dài liệu default: Giá trị mặc định trường null: Nếu có giá trị TRUE, trường cho phép liệu NULL, ngược lại NOT NULL auto_increment: Nếu có giá trị TRUE, liệu trường tự động tăng Ví dụ: Ngoài ra, ta thêm trường cách truyền trực tiếp câu lệnh SQL làm đối số cho hàm add_field() sau: Thư viện Database Forge cho phép tạo trường ID cách tự động cách gọi: Thêm khóa vào bảng Để thêm khóa vào bảng, ta sử dụng phương thức add_key() sau: Phương thức add_key() phải gọi sau phương thức create_table() Biến tùy chọn $isPrimaryKey cho phép thêm khóa vào trường chọn Để chọn hai trường làm khóa chính, ta thực gọi phương thức add_key() hai lần Thêm trường vào bảng tồn Để thêm trường vào bảng tồn tại, ta sử dụng phương thức add_column() sau: Trong đó, mảng $fields mảng kết hợp giống phương thức add_field() Xóa trường bảng tồn Để xóa trường bảng tồn tại, ta sử dụng phương thức drop_column() sau: Sửa thông tin trường Để sửa thông tin trường bảng tồn tại, ta sử dụng phương thức modify_column() sau: Cách sử dụng phương thức giống phương thức add_field(), ngoại trừ việc phương thức thay đổi thông tin trường thay thêm Mảng chứa thông tin trường phải chứa khóa name Ví dụ: Email 3.4 Gửi email thao tác thường gặp xây dựng ứng dụng web Bản thân PHP có hỗ trợ hàm mail() để thực gửi email Nhưng để thực chức cao cấp hơn, ta sử dụng thư viện Email CodeIgniter Thư viện Email hỗ trợ chức sau: Gửi email nhiều giao thức: Mail, Sendmail SMTP Có thể gửi cho nhiều người lúc CC (carbon copy) BCC (blind carbon copy) • Gửi email dạng HTML văn • Đính kèm tập tin • Thiết lập độ ưu tiên • Hỗ trợ wordwrap • BCC Batch Mode, cho phép chia danh sách email lớn thành danh sách nhỏ • Hỗ trợ công cụ tìm lỗi • • • Khai báo sử dụng thư viện Email Cũng giống sử dụng thư viện khác CodeIgniter, để sử dụng thư viện Email, ta sử dụng phương thức load() sau: 3.4.1 Thiết lập tùy chọn Để sử dụng thư viện Email, ta cần thiết lập tùy chọn gửi email, chẳng hạn giao thức, thông số máy chủ SMTP…Các thiết lập lưu vào mảng, truyền vào phương thức initialize() để tiến hành khởi tạo Chẳng hạn: Ngoài ra, ta lưu thiết lập vào mảng $config tập tin application/config/email.php Khi thiết lập gọi cách tự động thư viện Email khai báo sử dụng, ta không cần thiết phải gọi hàm initialize() 3.4.2 Thực gửi email Sau khai báo sử dụng thư viện Email thiết lập tùy chọn cần thiết, ta thực gửi email đoạn mã sau: 3.5 Encryption Trong ứng dụng web, việc bảo mật thông tin người sử dụng điều bắt buộc Đối với ứng dụng thương mại điện tử, việc mã hóa thông tin khách hàng, chẳng hạn số thẻ tín dụng, điện thoại, địa chỉ, email… định sống website Thư viện Encryption CodeIgniter xây dựng nhằm hỗ trợ lập trình viên thực mã hóa/giải mã cách đơn giản hiệu Thư viện Encryption sử dụng chế mã hóa đối xứng Thông điệp cần mã hóa tiền xử lý cách thực phép XOR với đoạn hash ngẫu nhiên Sau đó, kết thu mã hóa lần thư viện Mcrypt Nếu phiên PHP cài đặt không kích hoạt thư viện Mcrypt, kết mã hóa cung cấp mức độ bảo mật chấp nhận cho ứng dụng nhỏ Trong trường hợp sử dụng thư viện Mcrypt, mức độ bảo mật nâng cao nhiều 3.6 Session Thư viện Session CodeIgniter giúp quản lý trạng thái người dùng họ truy cập website Các thông tin lưu trữ (và mã hóa) tập tin cookie Hoặc ta thiết lập lưu trữ session sở liệu để nâng cao tính bảo mật Lưu ý, khái niệm session không liên quan đến session PHP CodeIgniter tạo liệu session riêng nó, nhằm cung cấp cách thức quản lý linh động CHƯƠNG : SẢN PHẨM DEMO WEBSITE VIẾT BẰNG NỀN TẢNG CODEIGNITER Giao diện website Các danh mục sản phẩm website Các danh mục sản phẩm website Các danh mục sản phẩm website Giao diện xem thông tin chi tiết sản phẩm Giao diện bill toán Giao diện đăng ký thông tin khách hàng Giao diện đăng nhập ADMIN Giao diện quản lý giao dịch Giao diện quản lý sản phẩm Giao diện quản lý danh mục sản phẩm Giao diện quản lý tài khoản quản trị viên Giao diện quản lý thành viên Giao diện quản lý liên hệ Giao diện quản lý quảng cáo website CHƯƠNG KẾT LUẬN KẾT LUẬN Qua tìm hiểu trên, ta thấy CodeIgniter tảng mạnh, cung cấp đầy đủ thư viện chức cần thiết để xây dựng ứng dụng web với tốc độ nhanh mà đảm bảo hiệu hệ thống So với tảng khác, CodeIgniter không cồng kềnh, không làm lập trình viên giảm hứng thú sử dụng Ngoài ra, cộng đồng người sử dụng CodeIgniter lớn, không ngừng đưa plugin, helper hỗ trợ việc lập trình Dù cho CodeIgniter số điểm hạn chế, bản, nói CodeIgniter ngày nhận ủng hộ từ phía lập trình viên PHP Phiên 2.0 CodeIgniter giai đoạn phát triển beta, hứa hẹn đem đến chức hữu ích thú vị DANH MỤC TỪ VIẾT TẮT • CRUD: Create Read Update Delete • • • • • • • • • CSV: Comma Separated Values CRLF: Carriage Return [and] Line Feed EDP: Event-Driven Programming MVC: Model-View-Controller ORM: Object-Relational Mapping URI: Uniform Resource Identifier URL: Uniform Resource Location XML: Extensible Markup Language XSS: Cross Site Scripting TÀI LIỆU THAM KHẢO CodeIgniter User Guide http://codeigniter.com/user_guide/ Wikipedia – The Free Encyclopedia http://en.wikipedia.org/wiki/Model–view–controller http://en.wikipedia.org/wiki/Object-relational_mapping http://en.wikipedia.org/wiki/Event-driven_programming http://en.wikipedia.org/wiki/Active_record_pattern - [...]... xây dựng nhằm thực hiện việc trao đổi thông tin với cơ sở dữ liệu Một lớp Model có thể thực hiện các tác vụ truy vấn, thêm, xóa, cập nhật dữ liệu Trong CodeIgniter, việc khai báo các lớp model dành cho một thực thể nào đó là không cần thiết, vì trong controller của thực thể đó, ta có thể gọi đến thư viện database để thực hiện các thao tác với cơ sở dữ liệu Tuy nhiên, để tiện cho việc quản lý, xây dựng. .. $route, với khóa là URI mới và giá trị là URI cũ Các quy luật được đọc theo thứ tự từ trên xuống, quy luật trước có độ ưu tiên cao hơn quy luật sau CodeIgniter cho phép sử dụng các ký tự đại diện (wildcard) để thay thế CodeIgniter đã quy định sẵn hai ký tự đại diện: • • :num tương ứng với các giá trị số :any tương ứng với bất kỳ giá trị nào Ví dụ: Ý nghĩa: Gọi đến phương thức view() trong lớp Product với. .. email như trong đoạn mã sau: 3.5 Encryption Trong một ứng dụng web, việc bảo mật thông tin của người sử dụng là điều bắt buộc Đối với các ứng dụng thương mại điện tử, việc mã hóa thông tin khách hàng, chẳng hạn như số thẻ tín dụng, điện thoại, địa chỉ, email… quyết định sự sống còn của website Thư viện Encryption của CodeIgniter được xây dựng nhằm hỗ trợ lập trình viên thực hiện mã hóa/giải mã một cách... của CodeIgniter giúp lập trình viên có thể yên tâm khi xây dựng ứng dụng Để phòng ngừa các phương thức tấn công phổ biến như XSS hay SQL Injection, CodeIgniter chỉ cho phép các ký tự sau xuất hiện trong URI: 2.9 • • Dữ liệu kiểu số và chữ Dấu ngã ã, dấu chấm (.), dấu hai chấm (:), dấu gạch ngang (-), dấu gạch dưới (_) Bằng cách này, các mã độc không thể được truyền trực tiếp vào hệ thống Mặc định, CodeIgniter. .. giúp tối ưu hóa hiệu suất của hệ thống Dù cho tốc độ xử lý của CodeIgniter khá nhanh, nhưng khi thực hiện các thao tác truy xuất dữ liệu, CodeIgniter vẫn phải sử dụng các tài nguyên của hệ thống như bộ nhớ, dung lượng đĩa…Bằng cách kích hoạt chức năng lưu trữ vào bộ đệm, tốc độ tải trang của CodeIgniter có thể tương đương với các trang web tĩnh 2.7 Về căn bản, tất cả các trang đều được lưu trong bộ... rollback Ta có thể điều khiển quá trình này bằng cách sử dụng phương thức trans_begin() Phương thức này thông báo cho CodeIgniter thực hiện giao dịch bằng tay (manually) 3.3.5 Quản trị cơ sở dữ liệu với Database Forge & Database Utility Thư viện Database Forge & Database Utility được xây dựng nhằm giúp lập trình viên thực hiện các thao tác liên quan đến việc quản trị cơ sở dữ liệu, chẳng hạn như thêm/xóa/sửa... thêm mới Mảng chứa thông tin của trường phải chứa khóa name Ví dụ: Email 3.4 Gửi email là một thao tác thường gặp khi xây dựng một ứng dụng web Bản thân PHP có hỗ trợ hàm mail() để thực hiện gửi email Nhưng để thực hiện những chức năng cao cấp hơn, ta có thể sử dụng thư viện Email của CodeIgniter Thư viện Email hỗ trợ những chức năng sau: Gửi email bằng nhiều giao thức: Mail, Sendmail và SMTP Có thể... của trang đó: Với $n là số phút trang sẽ được lưu trong bộ đệm Để hủy chức năng lưu trữ bộ đệm, ta chỉ cần xóa đoạn mã ở trên Các nội dung đã được lưu trong bộ đệm trước đó sẽ tự động xóa sau khoảng thời gian $n Lưu ý: Để có thể ghi vào bộ đệm, thư mục system/cache phải được cho phép ghi (writable) 2.8 Debugging Tìm và sửa lỗi là công việc thường gặp trong quá trình xây dựng hệ thống CodeIgniter cung... truy cập website Các thông tin này được lưu trữ (và mã hóa) trong một tập tin cookie Hoặc ta cũng có thể thiết lập lưu trữ session trong cơ sở dữ liệu để nâng cao tính bảo mật Lưu ý, khái niệm session ở đây không liên quan đến session của PHP CodeIgniter tạo ra dữ liệu session của riêng nó, nhằm cung cấp một cách thức quản lý linh động hơn CHƯƠNG 4 : SẢN PHẨM 4 DEMO WEBSITE VIẾT BẰNG NỀN TẢNG CODEIGNITER. .. của riêng nó, nhằm cung cấp một cách thức quản lý linh động hơn CHƯƠNG 4 : SẢN PHẨM 4 DEMO WEBSITE VIẾT BẰNG NỀN TẢNG CODEIGNITER Giao diện chính của website Các danh mục sản phẩm của website Các danh mục sản phẩm của website Các danh mục sản phẩm của website Giao diện xem thông tin chi tiết sản phẩm Giao diện bill thanh toán Giao diện đăng ký thông tin khách hàng Giao diện đăng nhập ADMIN Giao diện

Ngày đăng: 14/10/2016, 16:39

TỪ KHÓA LIÊN QUAN

w