Đồ án Xây dựng website bán hàng cho công ty TNHH thương mại HPIF
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Xây dựng website bán hàng cho công ty TNHH thương mại HPIF", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- do_an_xay_dung_website_ban_hang_cho_cong_ty_tnhh_thuong_mai.pdf
Nội dung text: Đồ án Xây dựng website bán hàng cho công ty TNHH thương mại HPIF
- Bé gi¸o dôc vµ ®µo t¹o Tr•êng ®¹i häc d©n lËp h¶i phßng - - - - - - - o0o- - - - - - - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN HẢI PHÒNG 2013
- Bé gi¸o dôc vµ ®µo t¹o Tr•êng ®¹i häc d©n lËp h¶i phßng o0o XÂY DỰNG WEBSITE BÁN HÀNG CHO CÔNG TY TNHH THƢƠNG MẠI HPIF ®å ¸n tèt nghiÖp ®¹i häc hÖ chÝnh quy Ngµnh: C«ng nghÖ Th«ng tin HẢI PHÒNG - 2013
- Bé gi¸o dôc vµ ®µo t¹o Tr•êng ®¹i häc d©n lËp h¶i phßng o0o XÂY DỰNG WEBSITE BÁN HÀNG CHO CÔNG TY TNHH THƢƠNG MẠI HPIF ®å ¸n tèt nghiÖp ®¹i häc hÖ chÝnh quy Ngµnh: C«ng nghÖ Th«ng tin Sinh viên thực hiện: Nguyễn Huy Long Giáo viên hƣớng dẫn: Th.s Nguyễn Trịnh Đông Mã sinh viên: 100190 HẢI PHÒNG - 2013
- bé gi¸o dôc vµ ®µo t¹o céng hoµ x· héi chñ nghÜa viÖt nam tr•êng ®¹i häc d©n lËp h¶i phßng §éc lËp - Tù do - H¹nh phóc - - - - - - - o0o- - - - - - - nhiÖm vô thiÕt kÕ tèt nghiÖp Sinh viên: Nguyễn Huy Long Mã số: 100190 Lớp: CT1201 Ngành: Công Nghệ Thông Tin Tên đề tài: Xây dựng website bán hàng cho công ty TNHH thƣơng mại HPIF
- nhiÖm vô ®Ò tµi 1. Nội dung và các yêu cầu giải quyết trong nhiệm vụ đề tài tốt nghiệp a. Nội dung: b. Các yêu cầu cần giải quyết 2. Các số liệu cần thiết để thiết kế tính toán 3. Địa điểm thực tập
- CÁN BỘ HƢỚNG DẪN ĐỀ TÀI TỐT NGHIỆP Ngƣời hƣớng dẫn thứ nhất: Họ và tên: Học hàm, học vị: Cơ quan công tác: Nội dung hƣớng dẫn: . Ngƣời hƣớng dẫn thứ hai: Họ và tên: Học hàm, học vị: Cơ quan công tác: Nội dung hƣớng dẫn: . Đề tài tốt nghiệp đƣợc giao ngày tháng năm 2013 Yêu cầu phải hoàn thành trƣớc ngày 5 tháng 05 năm 2013 Đã nhận nhiệm vụ: Đ.T.T.N Đã nhận nhiệm vụ: Đ.T.T.N Sinh viên Cán bộ hƣớng dẫn Đ.T.T.N Hải Phòng, ngày. tháng năm 2013 HIỆU TRƢỞNG GS.TS.NGƯT Trần Hữu Nghị
- PHẦN NHẬN XÉT TÓM TẮT CỦA CÁN BỘ HƢỚNG DẪN 1. Tinh thần thái độ của sinh viên trong quá trình làm đề tài tốt nghiệp: 2. Đánh giá chất lƣợng của đề tài tốt nghiệp (so với nội dung yêu cầu đã đề ra trong nhiệm vụ đề tài tốt nghiệp) 3. Cho điểm của cán bộ hƣớng dẫn: (Điểm ghi bằng số và chữ ) Ngày tháng năm 2013 Cán bộ hƣớng dẫn chính ( Ký, ghi râ hä tªn ) 1
- PHẦN NHẬN XÉT ĐÁNH GIÁ CỦA CÁN BỘ CHẤM PHẢN BIỆN ĐỀ TÀI TỐT NGHIỆP 1. Đánh giá chất lƣợng đề tài tốt nghiệp(về các mặt nhƣ cơ sở lý luận, thuyết minh chƣờn trình, giá trị thực tế, ) 2. Cho điểm của cán bộ phản biện ( Điểm ghi bằng số và chữ) Ngày tháng năm 2013 Cán bộ chấm phản biện ( Ký, ghi râ hä tªn ) 2
- LỜI CẢM ƠN Trong lời đầu tiên của báo cáo đồ án tốt nghiệp “Xây dựng Website cho công ty TNHH thƣơng mại Hpif” này, em muốn gửi những lời cám ơn và biết ơn chân thành nhất của mình tới tất cả những ngƣời đã hỗ trợ, giúp đỡ em về kiến thức và tinh thần trong quá trình thực hiện đồ án. Trƣớc hết, em xin chân thành cám ơn Thầy Giáo - Ths. Nguyễn Trịnh Đông, Giảng viên Khoa Công Nghệ Thông Tin, Trƣờng ĐHDL Hải Phòng, ngƣời đã trực tiếp hƣớng dẫn, nhận xét, giúp đỡ em trong suốt quá trình thực hiện đồ án. Xin chân thành cảm ơn các thầy cô trong Khoa Công Nghệ Thông Tin và các phòng ban nhà trƣờng đã tạo điều kiện tốt nhất cho em cũng nhƣ các bạn khác trong suốt thời gian học tập và làm tốt nghiệp. Cuối cùng em xin gửi lời cảm ơn đến gia đình, bạn bè, ngƣời thân đã giúp đỡ động viên em rất nhiều trong quá trình học tập và làm Đồ án Tốt Nghiệp. Do thời gian thực hiện có hạn, kiến thức còn nhiều hạn chế nên Đồ án thực hiện chắc chắn không tránh khỏi những thiếu sót nhất định. Em rất mong nhận đƣợc ý kiến đóng góp của thầy cô giáo và các bạn để em có thêm kinh nghiệm và tiếp tục hoàn thiện đồ án của mình. Em xin chân thành cảm ơn! Hải Phòng, ngày tháng năm 2013 Sinh viên Nguyễn Huy Long 3
- MỤC LỤC LỜI CẢM ƠN 3 MỤC LỤC 4 Chƣơng 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT 6 1.Giới thiệu về word wide web 6 2. Giao thức FTP(File Transfer Protocol) 6 3. Tim hiểu về IIS và Apache 8 3.1 IIS (Internet Information Services ) 8 3.2 Apache 9 4. Tìm hiểu về ASP.NET 9 4.1. ASP.NET là gì? 9 4.2. Các đối tƣợng trong ASP.NET 9 5. Tổng quan về PHP 11 5.1 Cấu trúc cơ bản 12 5.2 Xuất giá trị ra trình duyệt 13 5.3 Biến, hằng, chuỗi và các kiểu dữ liệu 13 5.4 Các phƣơng thức đƣợc sử dụng trong lập trình PHP 15 5.5 Cookie và Session trong PHP 16 5.6 Hàm 17 6. Tổng quan về MySQL 18 6.1 Khởi động và sử dụng 19 6.3 Loại dữ liệu trong MySQL 19 6.4 Những cú pháp cơ bản 19 7. Giới thiệu về CSS 20 8. Tổng quan về NukeViet 21 8.1 Giới thiệu chung 21 8.2 NukeViet và con đƣờng chuyên nghiệp hóa việc phát triển mã nguồn mở. 23 8.3 Ứng dụng 23 8.4 Các tính năng của sản phẩm 24 4
- 8.5 Các Module tích hợp sẵn trong Nuke Viet 3.0 28 8.6 Các tính năng quản trị của Nukeviet 3.0 33 Chƣơng 2: KHẢO SÁT VÀ THIẾT KẾ HỆ THỐNG 35 1.Giới thiệu đề tài 35 2. Yêu cầu bài toán đặt ra 35 3.Phát biểu bài toán 36 a. Quản Trị: 36 b. Bán hàng: 36 c. Đặt hàng: 36 4. Phân tích bài toán 36 4.1. Đối tƣợng sử dụng 36 4.2. Sơ đồ tiến trình nghiệp vụ 38 4.2. Biểu đồ phân cấp chức năng 41 4.3. Sơ đồ mức ngữ cảnh và sơ đồ luồng của hệ thống 43 4.3.1. Sơ đồ ngữ cảnh hệ thống 43 4.3.2. Sơ đồ luồng dữ liệu 44 5. Xây dựng cơ sở dữ liệu 48 5.1. Các thực thể và mô tả thực thể 48 6. Thiết kế hệ thống 52 6.1 Xác định các liên kết 52 6.2 Mô Hình ER 53 6.3 Chuyển từ mô hình ER sang mô hình quan hệ 54 6.4 Mô hình quan hệ 56 6.5 Thiết kế các bảng dữ liệu: 57 Chƣơng 3: CÀI ĐẶT CHƢƠNG TRÌNH 60 4. 1 Cài đặt chƣơng trình 60 4.2 Một số giao diện chính 60 KẾT LUẬN 65 TÀI LIỆU THAM KHẢO 66 PHỤ LỤC Error! Bookmark not defined. 5
- Chƣơng 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT 1.Giới thiệu về word wide web World Wide Web, gọi tắt là Web hoặc WWW, mạng lƣới toàn cầu là một không gian thông tin toàn cầu mà mọi ngƣời có thể truy nhập (đọc và viết) qua các máy tính nối với mạng Internet. Thuật ngữ này thƣờng đƣợc hiểu nhầm là từ đồng nghĩa với chính thuật ngữ Internet. Nhƣng Web thực ra chỉ là một trong các dịch vụ chạy trên Internet, chẳng hạn nhƣ dịch vụ thƣ điện tử. Web đƣợc phát minh và đƣa vào sử dụng vào khoảng năm 1990, 1991 bởi viện sĩ Viện Hàn lâm Anh Tim Berners- Lee và Robert Cailliau (Bỉ) tại CERN, Geneva, Switzerland Các tài liệu trên World Wide Web đƣợc lƣu trữ trong một hệ thống siêu văn bản (hypertext), đặt tại các máy tính trong mạng Internet. Ngƣời dùng phải sử dụng một chƣơng trình đƣợc gọi là trình duyệt web (web browser) để xem siêu văn bản. Chƣơng trình này sẽ nhận thông tin (documents) tại ô địa chỉ (address) do ngƣời sử dụng yêu cầu (thông tin trong ô địa chỉ đƣợc gọi là tên miền (domain name)), rồi sau đó chƣơng trình sẽ tự động gửi thông tin đến máy chủ (web server) và hiển thị trên màn hình máy tính của ngƣời xem. Ngƣời dùng có thể theo các liên kết siêu văn bản (hyperlink) trên mỗi trang web để nối với các tài liệu khác hoặc gửi thông tin phản hồi theo máy chủ trong một quá trình tƣơng tác. Hoạt động truy tìm theo các siêu liên kết thƣờng đƣợc gọi là duyệt Web. 2. Giao thức FTP(File Transfer Protocol) FTP (viết tắt của tiếng Anh File Transfer Protocol, "Giao thức truyền tập tin") thƣờng đƣợc dùng để trao đổi tập tin qua mạng lƣới truyền thông dùng giao thức TCP/IP (chẳng hạn nhƣ Internet - mạng ngoại bộ - hoặc intranet - mạng nội bộ). Hoạt động của FTP cần có hai máy tính, một máy chủ và một máy khách). Máy chủ FTP, dùng chạy phần mềm cung cấp dịch vụ FTP, gọi là trình chủ, lắng nghe yêu cầu về dịch vụ của các máy tính khác trên mạng lƣới. Máy khách chạy phần mềm FTP dành cho ngƣời sử dụng dịch vụ, gọi là trình khách, thì khởi đầu một liên kết với máy chủ. Một khi hai máy đa liên kết với nhau, máy khách có thể xử lý một số thao tác về tập tin, nhƣ tải tập tin lên máy chủ, tải tập tin từ máy chủ xuống máy của mình, đổi tên của tập tin, hoặc xóa tập tin ở máy chủ v.v. Vì giao thức FTP là một giao thức chuẩn công khai, cho nên bất cứ một công ty phần mềm nào, hay một lập trình viên nào cũng có thể viết trình chủ FTP hoặc trình khách FTP. Hầu nhƣ bất cứ một nền tảng hệ điều hành máy tính nào cũng hỗ trợ giao thức FTP.Điều này cho phép tất cả các máy tính kết nối với một mạng lƣới có nền 6
- TCP/IP, xử lý tập tin trên một máy tính khác trên cùng một mạng lƣới với mình, bất kể máy tính ấy dùng hệ điều hành nào (nếu các máy tính ấy đều cho phép sự truy cập của các máy tính khác, dùng giao thức FTP). Hiện nay trên thị trƣờng có rất nhiều các trình khách và trình chủ FTP, và phần đông các trình ứng dụng này cho phép ngƣời dùng đƣợc lấy tự do, không mất tiền. Khái quát FTP thƣờng chạy trên hai cổng, 20 và 21, và chỉ chạy riêng trên nền của TCP. Trình chủ FTP lắng nghe các yêu cầu dịch vụ từ những kết nối vào máy của các trình khách FTP, trên cổng 21.Đƣờng kết nối trên cổng 21 này tạo nên một dòng truyền điều khiển, cho phép các dòng lệnh đƣợc chuyển qua trình chủ FTP. Để truyền tải tập tin qua lại giữa hai máy, chúng ta cần phải có một kết nối khác. Tùy thuộc vào chế độ truyền tải đƣợc sử dụng, trình khách (ở chế độ năng động - active mode) hoặc trình chủ (ở chế độ bị động - passive mode) đều có thể lắng nghe yêu cầu kết nối đến từ đầu kia của mình. Trong trƣờng hợp kết nối ở chế độ năng động, (trình chủ kết nối với trình khách để truyền tải dữ liệu), trình chủ phải trƣớc tiên đóng kết vào cổng 20, trƣớc khi liên lạc và kết nối với trình khách. Trong chế độ bị động, hạn chế này đƣợc giải tỏa, và việc đóng kết trƣớc là một việc không cần phải làm. Trong khi dữ liệu đƣợc truyền tải qua dòng dữ liệu, dòng điều khiển đứng im. Tình trạng này gây ra một số vấn đề, đặc biệt khi số lƣợng dữ liệu đoi hỏi đƣợc truyền tải là một số lƣợng lớn, và đƣờng truyền tải chạy thông qua những bức tƣờng lửa.Bức tƣờng lửa là dụng cụ thƣờng tự động ngắt các phiên giao dịch sau một thời gian dài im lặng. Tuy tập tin có thể đƣợc truyền tải qua hoàn thiện, song dòng điều khiển do bị bức tƣờng lửa ngắt mạch truyền thông giữa quãng, gây ra báo lỗi. Mục đích của giao thức FTP Mục đích của giao thức FTP, nhƣ đƣợc phác thảo trong bản RFC, là: 1. Khuyến khích việc dùng chung tập tin (như chương trình ứng dụng vi tính hoặc dữ liệu) 2. Khuyến khích việc sử dụng máy tính ở xa một cách gián. 3. Che đậy sự khác biệt về hệ thống lưu trữ tập tin giữa các máy chủ, hầu cho người dùng không cần phải quan tâm đến những sự khác biệt riêng tư của chúng. 4. Truyền tải dữ liệu một cách đáng tin cậy và có hiệu quả cao. 7
- 3. Tim hiểu về IIS và Apache 3.1 IIS (Internet Information Services ) IIS đƣợc đính kèm với các phiên bản của Windows. Microsoft Internet Information Services (các dịch vụ cung cấp thông tin Internet) là các dịch vụ dành cho máy chủ chạy trên nền Hệ điều hành Window nhằm cung cấp và phân tán các thông tin lên mạng, nó bao gồm nhiều dịch vụ khác nhau nhƣ Web Server, FTP Server, Nó có thể đƣợc sử dụng để xuất bản nội dung của các trang Web lên Internet/Intranet bằng việc sử dụng “Phƣơng thức chuyển giao siêu văn bản“ - Hypertext Transport Protocol (HTTP). Nhƣ vậy, sau khi bạn thiết kế xong các trang Web của mình, nếu bạn muốn đƣa chúng lên mạng để mọi ngƣời có thể truy cập và xem chúng thì bạn phải nhờ đến một Web Server, ở đây là IIS.Nếu không thì trang Web của bạn chỉ có thể đƣợc xem trên chính máy của bạn hoặc thông qua việc chia sẻ tệp (file sharing) nhƣ các tệp bất kỳ trong mạng nội bộ mà thôi. Đặc tính kỹ thuật của IIS Nhiệm vụ của IIS là tiếp nhận yêu cầu của máy trạm và đáp ứng lại yêu cầu đó bằng cách gửi về máy trạm những thông tin mà máy trạm yêu cầu. Bạn có thể sử dụng IIS để: · Xuất bản một Website của bạn trên Internet · Tạo các giao dịch thƣơng mại điện tử trên Internet (hiện các catalog và nhận đƣợc các đơn đặt hàng từ nguời tiêu dùng) · Chia sẻ file dữ liệu thông qua giao thức FTP. · Cho phép ngƣời ở xa có thể truy xuất database của bạn (gọi là Database remote access). Và rất nhiều khả năng khác. Nguyên lý hoạt động của IIS IIS sử dụng các giao thức mạng phổ biến là HTTP (Hyper Text Transfer Protocol) và FPT (File Transfer Protocol) và một số giao thức khác nhƣ SMTP, POP3, để tiếp nhận yêu cầu và truyền tải thông tin trên mạng với các định dạng khác nhau. Một trong những dịch vụ phổ biến nhất của IIS mà chúng ta quan tâm trong giáo trình này là dịch vụ WWW (World Wide Web), nói tắt là dịch vụ Web. Dịch vụ Web sử dụng giao thức HTTP để tiếp nhận yêu cầu (Requests) của trình duyệt Web (Web browser) dƣới dạng một địa chỉ URL (Uniform Resource Locator) của một trang Web và IIS phản hồi lại các yêu cầu bằng cách gửi về cho Web 8
- 3.2 Apache Apache là chƣơng trình máy chủ HTTP. Apache chạy trên các hệ điều hành tƣơng tự nhƣ Unix, Microsoft Windows, Novell Netware và các hệ điều hành khác. Apache đóng một vai trò quan trọng trong quá trình phát triển của mạng web. Khi đƣợc phát hành lần đầu, Apache là chƣơng trình máy chủ mã nguồn mở duy nhất có khả năng cạnh tranh với chƣơng trình máy chủ tƣơng tự của Netscape Communications Corporation mà ngày nay đƣợc biết đến qua tên thƣơng mại Sun Java System Web Server, Từ tháng 4 nãm 1996, Apache trở thành một chƣơng trình máy chủ HTTP thông dụng nhất. 4. Tìm hiểu về ASP.NET 4.1. ASP.NET là gì? Trƣớc hết, họ tên của ASP.NET là Active Server Pages. NET (.NET ở đây là. NET framework). Nói đơn giản, ngắn và gọn thì ASP.NET là một công nghệ có tính cách mạng dùng để phát triển các ứng dụng về mạng hiện nay cũng nhƣ trong tƣơng lai (ASP.NET is a revolutionary technology for developing web applications). Bạn lƣu ý ở chổ ASP.NET là một phƣơng pháp tổ chức hay khung tổ chức (framework) để thiết lập các ứng dụng hết sức hùng mạnh cho mạng dựa trên CLR (Common Language Runtime) chứ không phải là một ngôn ngữ lập trình. Ngôn ngữ lập trình đƣợc dùng để diển đạt ASP.NET trong khóa này là VB.NET (Visual Basic. NET) và VB.NET chỉ là một trong 25 ngôn ngữ. NET hiện nay đƣợc dùng để phát triển các trang ASP.NET mà thôi. Tuy mang họ tên gần giống nhƣ ASP cổ điển nhƣng ASP.NET không phải là ASP. Ta sơ lƣợc ở đây vài khác biệt giữa ASP.NET và ASP để bạn có khái niệm tổng quát và sẽ trình bày thêm chi tiết khi đào sâu vào từng điểm đặc trƣng (features) của ASP.NET ở từng bài học một. 4.2. Các đối tƣợng trong ASP.NET 4.2.1. Đối tƣợng Response Đối tƣợng Response đƣợc sử dụng để giao tiếp với Client, nó quản lý và điều phối thông tin từ Web Server đến các trình duyệt của ngƣời dùng. 4.2.2. Đối tƣợng Request Đối tƣợng Request đƣợc dùng để nhận thông tin từ trình duyệt của ngƣời dùng gởi về cho Web Server. 4.2.3. Đối tƣợng Server Đối tƣợng Server đƣợc sử dụng để cung cấp thông tin của Server cho ứng dụng. Thuộc tính MachineName Thuộc tính này đƣợc dùng để lấy tên của Web Server. 9
- Phƣơng thức Mappath Phƣơng thức Mappath đƣợc dùng để lấy đƣờng dẫn vật lý hoặc đƣờng dẫn ảo đến một thƣ mục trên Server. Phƣơng thức Transfer( ) Ngừng thi hành trang hiện hành, gởi yêu cầu mới đến trang đƣợc gọi thực hiện. 4.2.4 Đối tƣợng Cookies Những thông tin đƣợc Web Server lƣu tại máy Client đƣợc gọi là Cookies. Không giống nhƣ đối tƣợng Session, đối tƣợng Cookies cũng đƣợc dùng để lƣu trữ thông tin của ngƣời dùng, tuy nhiên, thông tin này đƣợc lƣu ngay tại máy gởi yêu cầu đến Web Server. Có thể xem một Cookie nhƣ một tập tin (với kích thƣớc khá nhỏ) đƣợc Web Server lƣu tại máy của ngƣời dùng. Mỗi lần có yêu cầu đến Web Server, những thông tin của Cookies cũng sẽ đƣợc gởi theo về Server. Thêm Cookies Response.Cookies.Add( ) 4.2.5. Đối tƣợng Application Đối tƣợng Application đƣợc sử dụng để quản lý tất cả các thông tin của một ứng dụng web. Thông tin đƣợc lƣu trữ trong đối tƣợng Application có thể đƣợc xử lý trong bất kỳ trang aspx nào trong suốt chu kỳ sống của ứng dụng 4.2.6. Đối tƣợng Session Đối tƣợng Session đƣợc dùng để lƣu trữ thông tin của ngƣời dùng trong ứng dụng. Thông tin đƣợc lƣu trữ trong Session là của một ngƣời dùng trong một phiên làm việc cụ thể. Web Server sẽ tự động tạo một đối tƣợng Session cho mỗi ngƣời dùng mới kết nối vào ứng dụng và tự động hủy chúng nếu ngƣời dùng còn không làm việc với ứng dụng nữa. Tuy nhiên, không giống nhƣ đối tƣợng Application, đối tƣợng Session không thể chia sẻ thông tin giữa những lần làm việc của ngƣời dùng, nó chỉ có thể cung cấp, trao đổi thông tin cho các trang trong lần làm việc tƣơng ứng. Trong ứng dụng web, đối tƣợng Session giữ vai trò khá quan trọng. Do sử dụng giao thức HTTP, một giao thức phi trạng thái, Web Server hoàn toàn không ghi nhớ những gì giữa những lần yêu cầu của Client. Đối tƣợng Session tỏ ra khá hữu hiệu trong việc thực hiện "lƣu vết và quản lý thông tin của ngƣời dùng Thuộc tính Timeout Qui định khoảng thời gian (tính bằng phút) mà Web Server duy trì đối tƣợng Session nếu ngƣời dùng không gởi yêu cầu nào về lại Server. Giá trị mặc định của thuộc tính này là 20. Nếu không có yêu cầu nào kể từ lần yêu cầu sau cùng một khoảng thời gian là phút, đối tƣợng Session mà Web server cấp cho lần làm việc đó sẽ tự động đƣợc giải phóng. Những yêu cầu sau đó đƣợc Web server coi nhƣ là một ngƣời dùng mới, và đƣơng nhiên sẽ đƣợc cấp một đối tƣợng Session mới Phƣơng thức Abandon Nhƣ các bạn đa biết, trong khoảng thời gian phút kể từ lần yêu cầu sau cùng của Client, đối tƣợng Session vẫn đƣợc duy trì dù cho không có sự tƣơng tác nào của Client. Điều này đồng nghĩa với việc Web server phải 10
- sử dụng một vùng nhớ để duy trì đối tƣợng Session trong một khoảng thời gian tƣơng ứng. Phƣơng thức Abandon của đối tƣợng Session sẽ giải phóng vùng nhớ đƣợc dùng để duy trì đối tƣợng Session trên Web Server ngay khi đƣợc gọi thực hiện. Những yêu cầu sau đó đƣợc Web server coi nhƣ là một ngƣời dùng mới. 5. Tổng quan về PHP Lịch sử phát triển PHP Đƣợc phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus Lerdorf tạo ra năm 1995, ban đầu đƣợc xem nhƣ là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng. Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools'. PHP 3 PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta đƣợc biết ngày nay. Nó đã đƣợc Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trƣớc đó. PHP 3.0 đã chính thức đƣợc công bố vào tháng 6 năm 1998, sau thời gian 9 tháng đƣợc cộng đồng kiểm nghiệm. PHP 4 Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức đƣợc công bố, Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP. Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev và Andi), đã đáp ứng đƣợc các nhu cầu thiết kế này một cách thành công, và lần đầu tiên đƣợc giới thiệu vào giữa năm 1999. PHP 4.0, dựa trên động cơ này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức đƣợc công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời. PHP 5 Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn. Cộng đồng PHP đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hƣớng đối tƣợng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch vụ web yếu. Những điểm này chính là mục đích để Zeev và Andi viết Zend Engine 2.0, lõi của PHP 11
- 5.0. Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức đƣợc công bố để cộng đồng kiểm nghiệm. Đó cũng là phiên bản đầu tiên của Zend Engine 2.0. Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất đƣợc chờ đợi: Iterators, Reflection nhƣng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn. Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã đƣợc công bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới. PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3. Mặc dù coi đây là phiên bản sản xuất đầu tiên nhƣng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP. 5.1 Cấu trúc cơ bản PHP cũng có thẻ bắt đầu và kết thúc giống với ngôn ngữ HTML. Chỉ khác, đối với PHP chúng ta có nhiều cách để thể hiện. Cách 1: Cú pháp chính: Cách 2: Cú pháp ngắn gọn Cách 3: Cú pháp giống với ASP. Cách 4: Cú pháp bắt đầu bằng script Mặc dù có 4 cách thể hiện. Nhƣng đối với 1 lập trình viên có kinh nghiệm thì việc sử dụng cách 1 vẫn là lựa chon tối ƣu. Trong PHP để kết thúc 1 dòng lệnh chúng ta sử dụng dấu ";" Để chú thích 1 đoạn dữ liệu nào đó trong PHP ta sử dụng dấu "//" cho từng dòng. Hoặc dùng cặp thẻ "/* */" cho từng cụm mã lệnh. Ví dụ: 12
- 5.2 Xuất giá trị ra trình duyệt Để xuất dữ liệu ra trình duyệt chúng ta có những dòng cú pháp sau: + echo "Thông tin"; + printf "Thông tin"; Thông tin bao gồm: biến, chuỗi, hoặc lệnh HTML . Hình 1. 1: Xuất ra trình duyệt Nếu giữa hai chuỗi muốn liên kết với nhau ta sử dụng dấu "." Hình 1. 2: Liên kết 2 chuỗi 5.3 Biến, hằng, chuỗi và các kiểu dữ liệu Biến Biến đƣợc xem là vùng nhớ dữ liệu tạm thời. Và giá trị có thể thay đổi đƣợc. Biến đƣợc bắt đầu bằng ký hiệu "$". Và theo sau chúng là 1 từ, 1 cụm từ nhƣng phải viết liền hoặc có gạch dƣới. Một biến đƣợc xem là hợp lệ khi nó thỏa các yếu tố: + Tên của biến phải bắt đầu bằng dấu gạch dƣới và theo sau là các ký tự, số hay dấu gạch dƣới. + Tên của biến không đƣợc phép trùng với các từ khóa của PHP. Trong PHP để sử dụng 1 biến chúng ta thƣờng phải khai báo trƣớc, tuy nhiên đối với các lập trình viên khi sử dụng họ thƣờng xử lý cùng một lúc các công việc, nghĩa là vừa khái báo vừa gán dữ liệu cho biến. Bản thân biến cũng có thể gán cho các kiểu dữ liệu khác. Và tùy theo ý định của ngƣời lập trình mong muốn trên chúng. 13
- Hình 1. 3: Biến trong PHP Hằng Nếu biến là cái có thể thay đổi đƣợc thì ngƣợc lại hằng là cái chúng ta không thể thay đổi đƣợc. Hằng trong PHP đƣợc định nghĩa bởi hàm define theo cú pháp: define (string tên_hằng, giá_trị_hằng ). Cũng giống với biến hằng đƣợc xem là hợp lệ thì chúng phải đáp ứng 1 số yếu tố: + Hằng không có dấu "$" ở trƣớc tên. + Hằng có thể truy cập bất cứ vị trí nào trong mã lệnh + Hằng chỉ đƣợc phép gán giá trị duy nhất 1 lần. + Hằng thƣờng viết bằng chữ in để phân biệt với biến Hình 1. 4: Hằng trong PHP Chuỗi Chuỗi là một nhóm các kỹ tự, số, khoảng trắng, dấu ngắt đƣợc đặt trong các dấu nháy. Ví dụ: ‘Hello’ Để tạo 1 biễn chuỗi, chúng ta phải gán giá trị chuỗi cho 1 biến hợp lệ. Ví dụ: $fisrt_name= "Nguyen"; $last_name= ‘Van A’; Để liên kết 1 chuỗi và 1 biến chúng ta thƣờng sử dụng dấu "." 14
- Hình 1. 5: Liên kết chuỗi và biến trong PHP Kiểu dữ liệu Các kiểu dữ liệu khác nhau chiếm các lƣợng bộ nhớ khác nhau và có thể đƣợc xử lý theo cách khác nhau khi chúng đƣợc theo tác trong 1 script. Trong PHP chúng ta có 6 kiểu dữ liệu chính nhƣ sau: Hình 1. 6: Kiểu dữ liệu trong PHP Chúng ta có thể sử dụng hàm dựng sẵn GETTYPE() của PHP4 để kiểm tra kiểu của bất kỳ biến. Hình 1. 7: Hàm GETTYPE 5.4 Các phƣơng thức đƣợc sử dụng trong lập trình PHP Có 2 phƣơng thức đƣợc sử dụng trong lập trình PHP là GET và POST Phương thức GET Phƣơng thức này cũng đƣợc dùng để lấy dữ liệu từ form nhập liệu. Tuy nhiên nhiệm vụ chính của nó vẫn là lấy nội dung trang dữ liệu từ web server. Ví dụ: Với url sau: shownews.php?id=50 Vậy với trang shownews ta dùng hàm $_GET[„id‟] sẽ đƣợc giá trị là 50. Phương thức POST 15
- Phƣơng thức này đƣợc sử dụng để lấy dữ liệu từ form nhập liệu. Và chuyển chúng lên trình chủ webserver. Hình 1. 8: Phƣơng thức POST 5.5 Cookie và Session trong PHP Cookie và Session là hai phƣơng pháp sử dụng để quản lý các phiên làm việc giữa ngƣời sử dụng và hệ thống Cookie Cookie là 1 đoạn dữ liệu đƣợc ghi vào đĩa cứng hoặc bộ nhớ của máy ngƣời sử dụng. Nó đƣợc trình duyệt gởi ngƣợc lên lại server mỗi khi browser tải 1 trang web từ server. Những thông tin đƣợc lƣu trữ trong cookie hoàn toàn phụ thuộc vào Website trên server. Mỗi Website có thể lƣu trữ những thông tin khác nhau trong cookie, ví dụ thời điểm lần cuối ta ghé thăm Website, đánh dấu ta đã login hay chƣa, v.v Cookie đƣợc tạo ra bởi Website và gởi tới browser, do vậy 2 Website khác nhau (cho dù cùng host trên 1 server) sẽ có 2 cookie khác nhau gởi tới browser. Ngoài ra, mỗi browser quản lý và lƣu trữ cookie theo cách riêng của mình, cho nên 2 browser cùng truy cập vào 1 Website sẽ nhận đƣợc 2 cookie khác nhau Để thiết lập cookie ta sử dụng cú pháp: Setcookie("tên cookie","giá trị", thời gian sống) Tên cookie là tên mà chúng ta đặt cho phiên làm việc. Giá trị là thông số của tên cookie. Ví dụ: setcookie("name","admin",time()+3600); Để sử dụng lại cookie vừa thiết lập, chúng ta sử dụng cú pháp: Cú pháp: $_COOKIE["tên cookies"] Tên cookie là tên mà chúng ta thiết lập phía trên. Để hủy 1 cookie đã đƣợc tạo ta có thể dùng 1 trong 2 cách sau: + Cú pháp: setcookie("Tên cookie") 16
- Gọi hàm setcookie với chỉ duy nhất tên cookie mà thôi + Dùng thời gian hết hạn cookie là thời điểm trong quá khứ. Ví dụ: setcookie("name","admin",time()- 3600); Session Một cách khác quản lý ngƣời sử dụng là Session. Session đƣợc hiểu là khoảng thời gian ngƣời sử dụng giao tiếp với 1 ứng dụng. Một session đƣợc bắt đầu khi ngƣời sử dụng truy cập vào ứng dụng lần đầu tiên, và kết thúc khi ngƣời sử dụng thoát khỏi ứng dụng. Mỗi session sẽ có đƣợc cấp một định danh (ID) khác nhau. Để thiết lập 1 session ta sử dụng cú pháp: session_start() Đoạn code này phải đƣợc nằm trên các kịch bản HTML. Hoặc những lệnh echo, printf. Để thiết lập 1 giá trị session, ngoài việc cho phép bắt đầu thực thi session. Chúng ta còn phải đăng ký 1 giá trị session. Để tiện cho việc gán giá trị cho session đó. Ta có cú pháp sau: session_register("Name") Giống với cookie. Để sử dụng giá trị của session ta sử dụng mã lệnh sau: Cú pháp: $_SESSION["name"] Với Name là tên mà chúng ta sử dụng hàm session_register("name") để khai báo. Để hủy bỏ giá trị của session ta có những cách sau: session_destroy() // Cho phép hủy bỏ toàn bộ giá trị của session session_unset()// Cho phép hủy bỏ session. 5.6 Hàm Để giảm thời gian lặp lại 1 thao tác code nhiều lần, PHP hỗ trợ ngƣời lập trình việc tự định nghĩa cho mình những hàm có khả năng lặp lại nhiều lần trong Website. Việc này cũng giúp cho ngƣời lập trình kiểm soát mã nguồn một cách mạch lạc. Đồng thời có thể tùy biến ở mọi trang. Mà không cần phải khởi tạo hay viết lại mã lệnh nhƣ HTML thuần Hàm tự định nghĩa Cú pháp: function function_name() { 17
- //Lệnh thực thi } Tên hàm có thể là một tổ hợp bất kỳ những chứ cái, con số và dấu gạch dƣới, nhƣng phải bắt đầu từ chứ cái và dấu gạch dƣới. Hàm tự định nghĩa với các tham số Cú pháp: function function_name($gt1,$gt2) { //Lệnh thực thi } Hàm tự định nghĩa với giá trị trả về Cú pháp: function function_name(Có hoặc không có đối số) { // Lệnh thực thi return giatri; } Gọi lại hàm PHP cung cấp nhiều hàm cho phép triệu gọi lại file. Nhƣ hàm include("URL đến file"), require("URL Đến file"). Ngoài hai cú pháp trên còn có include_once(), require_once(). Hai hàm này cũng có trách nhiệm gọi lại hàm. Những chúng sẽ chỉ gọi lại duy nhất 1 lần mà thôi. 6. Tổng quan về MySQL MySQL là hệ quản trị dữ liệu miễn phí, đƣợc tích hợp sử dụng chung với apache, PHP. Chính yếu tố phát triển trong cộng đồng mã nguồn mở nên MySQL đã qua rất nhiều sự hỗ trợ của những lập trình viên yêu thích mã nguồn mở. MySQL cũng có cùng một cách truy xuất và mã lệnh tƣơng tự với ngôn ngữ SQL. Nhƣng MySQL không bao quát toàn bộ những câu truy vấn cao cấp nhƣ SQL. Về bản chất MySQL chỉ đáp ứng việc truy xuất đơn giản trong quá trình vận hành của Website nhƣng hầu hết có thể giải quyết các bài toán trong PHP. 18
- 6.1 Khởi động và sử dụng Chúng ta sử dụng command nhƣ sau: Mysql –hname –uuser –ppass Để truy cập vào cơ sở dữ liệu. Hoặc sử dụng bộ appserv để vào nhanh hơn theo đƣờng dẫn sau: Start/ Appserv/ Mysql command Line client Sau đó nhập password mà chúng ta đã đặt vào. Một số thuật ngữ: NULL: Giá trị cho phép rỗng. AUTO_INCREMENT: Cho phép giá trị tăng dần (tự động). UNSIGNED: Phải là số nguyên dƣơng PRIMARY KEY: Cho phép nó là khóa chính trong bảng. 6.3 Loại dữ liệu trong MySQL Hình 1. 9: Loại dữ liệu trong MySQL 6.4 Những cú pháp cơ bản Tạo một cơ sở dữ liệu: CREATE DATABASE tên_cơ_sở_dữ_liệu; Cú pháp sử dụng cơ sở dữ liệu: Use tên_database; Cú pháp thoát khỏi cơ sở dữ liệu: Exit Tạo một bảng trong cơ sở dữ liệu: CREATE TABLE user ( , , ) Hiển thị có bao nhiều bảng: show tables; Hiển thị có bao nhiêu cột trong bảng: show columns from table; Thêm 1 cột vào bảng: 19
- ALTER TABLE tên_bảng ADD AFTER Thêm giá trị vào bảng: INSERT INTO Tên_bảng(tên_cột) VALUES(Giá_trị_tương_ứng); Truy xuất dữ liệu: SELECT tên_cột FROM Tên_bảng; Truy xuất dữ liệu với điều kiện: SELECT tên_cột FROM Tên_bảng WHERE điều kiện; Truy xuất dữ liệu và sắp xếp theo trình tự: SELECT tên_cột FROM Tên_bảng WHERE điều kiện (có thể có where hoặc không) ORDER BY Theo quy ước sắp xếp. Trong đó quy ƣớc sắp xếp bao gồm hai thông số là ASC (từ trên xuống dƣới), DESC (từ dƣới lên trên). Truy cập dữ liệu có giới hạn: SELECT tên_cột FROM Tên_bảng WHERE điều kiện (có thể có where hoặc không) LIMIT vị trí bắt đầu, số record muốn lấy ra Cập nhật dữ liệu trong bảng: UPDATE tên_bảng set tên_cột = Giá trị mới WHERE (điều kiện). Nếu không có ràng buộc điều kiện, chúng sẽ cập nhật toàn bộ giá trị mới của các record trong bảng. Xóa dữ liệu trong bảng: DELETE FROM tên_bảng WHERE (điều kiện). Nếu không có ràng buộc điều kiện, chúng sẽ xó toàn bộ giá trị của các record trong bảng. 7. Giới thiệu về CSS CSS là các tập tin định kiểu theo tầng (Cascading Style Sheets (CSS)) đƣợc dùng để miêu tả cách trình bày các tài liệu viết bằng ngôn ngữ HTML và XHTML. Ngoài ra ngôn ngữ định kiểu theo tầng cũng có thể dùng cho XML, SVG, XUL. Các đặc điểm 20
- kỹ thuật của CSS đƣợc duy trì bởi World Wide Web Consortium (W3C). Thay vì đặt các thẻ qui định kiểu dáng cho văn bản HTML (hoặc XHTML) ngay trong nội dung của nó, bạn nên sử dụng CSS. Tác dụng của CSS: Hạn chế tối thiểu việc làm rối mã HTML của trang Web bằng các thẻ quy định kiểu dáng (chữ đậm, chữ in nghiêng, chữ có gạch chân, chữ màu), khiến mã nguồn của trang Web đƣợc gọn gàng hơn, tách nội dung của trang Web và định dạng hiển thị, dễ dàng cho việc cập nhật nội dung. Tạo ra các kiểu dáng có thể áp dụng cho nhiều trang Web, giúp tránh phải lặp lại việc định dạng cho các trang Web giống nhau. 8. Tổng quan về NukeViet 8.1 Giới thiệu chung NukeViet là một hệ quản trị nội dung (Content Management System - CMS) cho phép bạn quản lý các cổng thông tin điện tử trên Internet. Nói đơn giản, NukeViet giống nhƣ một phần mềm giúp bạn xây dựng và vận hành các trang web của mình một cách dễ dàng nhất. Website bạn đang xem - trang nukeviet.vn này - đƣợc tạo ra và vận hành bởi phần mềm NukeViet. NukeViet là một phần mềm mã nguồn mở, do đó việc sử dụng hoàn toàn miễn phí, bạn có thể tải NukeViet về bất cứ lúc nào tại website chính thức của NukeViet là nukeviet.vn. Bạn có thể cài NukeViet lên hosting để sử dụng hoặc cũng có thể thử nghiệm bằng cách cài ngay lên máy tính cá nhân. NukeViet cho phép xây dựng một website động, đa chức năng, hiện đại một cách nhanh chóng mà ngƣời vận hành nó thậm chí không cần phải biết một tí gì về lập trình bởi tất cả các tác vụ quản lý phức tạp đều đƣợc tự động hóa ở mức cao. NukeViet đặc biệt dễ dàng sử dụng vì hoàn toàn bằng tiếng Việt và đƣợc thiết kế phù hợp nhất với thói quen sử dụng mạng của ngƣời Việt Nam. Bằng việc sử dụng các công nghệ web mới nhất hiện nay, thiết kế hệ thống uyển chuyển và sở hữu những tính năng độc đáo, NukeViet sẽ giúp bạn triển khai các ứng dụng web từ nhỏ đến lớn một cách nhanh chóng và tiết kiệm: từ các website cá nhân cho tới các cổng thông tin điện tử; từ các gian hàng trực tuyến cho tới các mạng xã hội NukeViet là CMS mã nguồn mở đầu tiên của Việt Nam có quá trình phát triển lâu dài nhất, có lƣợng ngƣời sử dụng đông nhất. Hiện NukeViet cũng là một trong những mã nguồn mở chuyên nghiệp đầu tiên của Việt Nam, cơ quan chủ quản của NukeViet là VINADES.,JSC - đơn vị chịu trách nhiệm phát triển NukeViet và triển khai NukeViet thành các ứng dụng cụ thể cho doanh nghiệp. 21
- Giới thiệu về NukeViet 3.0 NukeViet 3.0 là thế hệ CMS hoàn toàn mới do ngƣời Việt phát triển. Lần đầu tiên ở Việt Nam, một bộ nhân mã nguồn mở đƣợc đầu tƣ bài bản và chuyên nghiệp cả về tài chính, nhân lực và thời gian. Kết quả là 100% dòng code của NukeViet đƣợc viết mới hoàn toàn, NukeViet 3 sử dụng xHTML, CSS với Xtemplate và jquery cho phép vận dụng Ajax uyển chuyển cả trong công nghệ nhân. Tận dụng các thành tựu mã nguồn mở có sẵn nhƣng NukeViet 3 vẫn đảm bảo rằng từng dòng code là đƣợc code tay. Điều này có nghĩa là NukeViet 3 hoàn toàn không lệ thuộc vào bất cứ framework nào trong quá trình phát triển của mình; Bạn hoàn toàn có thể đọc hiểu để tự lập trình trên NukeViet 3 nếu bạn biết PHP và MySQL (đồng nghĩa với việc NukeViet 3 hoàn toàn mở và dễ nghiên cứu cho bất cứ ai muốn tìm hiểu về code của NukeViet). Bộ nhân NukeViet 3 ngoài việc thừa hƣởng sự đơn giản vốn có của NukeViet nhƣng không vì thế mà quên nâng cấp mình. Hệ thống NukeViet 3 hỗ trợ công nghệ đa nhân module. Chúng tôi gọi đó là công nghệ ảo hóa module. Công nghệ này cho phép ngƣời sử dụng có thể khởi tạo hàng ngàn module một cách tự động mà không cần động đến một dòng code. Các module đƣợc sinh ra từ công nghệ này gọi là module ảo. Module ảo là module đƣợc nhân bản từ một module bất kỳ của hệ thống NukeViet nếu module đó cho phép tạo module ảo. NukeViet 3 cũng hỗ trợ việc cài đặt từ động 100% các module, block, theme từ Admin Control Panel, ngƣời sử dụng có thể cài module mà không cần làm bất cứ thao tác phức tạp nào. NukeViet 3 còn cho phép bạn đóng gói module để chia sẻ cho ngƣời khác. NukeViet 3 đa ngôn ngữ 100% với 2 loại: đa ngôn ngữ giao diện và đa ngôn ngữ database. NukeViet 3 có tính năng cho phép ngƣời quản trị tự xây dựng ngôn ngữ mới cho site. Cho phép đóng gói file ngôn ngữ để chia sẻ cho cộng đồng câu chuyện về NukeViet 3 sẽ còn dài vì một loạt các tính năng cao cấp vẫn đang đƣợc phát triển. Hãy sử dụng và phổ biến NukeViet 3 để tự mình tận hƣởng những thành quả mới nhất từ công nghệ web mã nguồn mở. Cuối cùng NukeViet 3 là món của của VINADES.,JSC gửi tới cộng đồng để cảm ơn cộng đồng đã ủng hộ NukeViet thời gian qua, NukeViet 3 đƣợc đƣa trở lại cộng đồng với mong muốn để nó tiếp tục lớn mạnh hơn, giúp ích nhiều hơn cho cộng đồng bằng sức mạnh của một mã nguồn mở. Mã nguồn mở NukeViet là sản phẩm của sự làm việc chuyên nghiệp Để xây dựng lên NukeViet 3.0, đội ngũ phát triển đã thành lập công ty VINADES.,JSC. Trong quá trình phát triển NukeViet 3.0, VINADES.,JSC đã hợp tác 22
- với nhiều đơn vị cung cấp hosting trong và ngoài nƣớc để thử nghiệm host, đảm bảo tƣơng thích với đa số các hosting chuyên nghiệp. NukeViet 3.0 cũng đƣợc vận hành thử nghiệm, góp ý bởi nhiều webmaster có kinh nghiệm quản trị ở nhiều hệ thống khác nhau nhằm tối ƣu các tính năng hệ thống cho ngƣời sử dụng. NukeViet 3.0 đƣợc lập trình bởi các lập trình viên mà kinh nghiệm và tên tuổi của họ đã đƣợc xác lập cùng với tên tuổi của bộ mã nguồn mở tạo web đầu tiên của Việt Nam. 8.2 NukeViet và con đƣờng chuyên nghiệp hóa việc phát triển mã nguồn mở. Quá trình phát triển của NukeViet đi từ tự phát cho đến chuyên nghiệp là một điển hình của con đƣờng phát triển mã nguồn mở trên thế giới. NukeViet có quá trình phát triển từ năm 2004, Từ việc sử dụng sản phẩm PHP- Nuke để làm cho website cá nhân, anh Nguyễn Anh Tú - một lƣu học sinh ngƣời Việt tại Nga - đã cùng cộng đồng Việt hóa, cải tiến thành NukeViet. Đƣợc sự đón nhận của đông đảo ngƣời sử dụng, NukeViet đã liên tục đƣợc phát triển và trở thành một ứng dụng thuần Việt. Cho đến phiên bản 3.0, đội ngũ phát triển NukeViet đã tách khỏi ảnh hƣởng lạc hậu của PHP- Nuke và xây dựng NukeViet thành một ứng dụng khác biệt hoàn toàn. Với 100% dòng code đƣợc viết mới, NukeViet 3.0 đã cho kết quả là Website đạt chuẩn xHTML 1.0 và CSS 2.1 cũng nhƣ hỗ trợ Ajax từ trong bộ nhân. 8.3 Ứng dụng NukeViet đƣợc sử dụng ở nhiều website, từ những website cá nhân cho tới những hệ thống website doanh nghiệp, nó cung cấp nhiều dịch vụ và ứng dụng nhờ khả năng tăng cƣờng tính năng bằng cách cài thêm các module, block NukeViet chủ yếu đƣợc sử dụng làm trang tin tức nhờ module News tích hợp sẵn trong NukeViet đƣợc viết rất công phu, nó lại đặc biệt phù hợp với yêu cầu và đặc điểm sử dụng cho hệ thống tin tức. NukeViet có thể dễ dàng cài đặt, dễ dàng quản lý kể cả với những ngƣời mới sử dụng do đó thƣờng đƣợc những đối tƣợng ngƣời dùng không chuyên ƣa thích. NukeViet có mã nguồn mở do đó việc sử dụng NukeViet là hoàn toàn miễn phí cho tất cả mọi ngƣời trên thế giới. Từ bản 2.0 trở về trƣớc, đối tƣợng ngƣời dùng chủ yếu của NukeViet là ngƣời Việt vì những đặc điểm của bản thân mã nguồn (có nguồn gốc từ PHP- Nuke) và vì chính sách của nhóm phát triển là: "hệ thống Portal dành cho ngƣời Việt". Kể từ phiên bản 3.0, đội ngũ phát triển NukeViet định hƣớng đƣa NukeViet ra cộng đồng quốc tế. Bằng việc đi vào mô hình phát triển chuyên nghiệp, VINADES - công ty chyên quản NukeViet bổ sung thêm việc cung cấp các dịch vụ hỗ trợ chuyên nghiệp cho NukeViet bao gồm dịch vụ tƣ vấn và triển khai mã nguồn mở NukeViet giúp doanh nghiệp xây dựng các hệ thống website chuyên biệt trên nền tảng Web nhƣ các cổng thông tin điện tử, báo điện tử; các ứng dụng quản lý trực tuyến (ví 23
- dụ Quản lý nhân sự, Quản lý hồ sơ, công văn ) cho tới các hệ thống thƣơng mại điện tử hay các mạng xã hội có tính tƣơng tác và truyền thông cao Trên thực tế VINADES.,JSC đã triển khai thành công nhiều ứng dụng trên nền mã nguồn mở NukeViet nhƣ: cổng thông tin điện tử cho doanh nghiệp, toà soạn báo điện tử, các hệ thống thƣơng mại điện tử trực tuyến 8.4 Các tính năng của sản phẩm 1. Nền tảng công nghệ: NukeViet 3 lập trình trên PHP 5 và MySQL 5 cho phép vận dụng tối đa sức mạnh của công nghệ mới. Ứng dụng Xtemplate và jQuery cho phép vận dụng Ajax uyển chuyển từ trong nhân hệ thống. Với xHTML 1.0 và CSS 2.1, NukeViet 3.0 cho kết quả là những trang web đạt tiêu chuẩn, tƣơng thích trên tất cả các trình duyệt phổ biến hiện nay. Thiết kế giao diện đồ họa sử dụng nguyên lý thiết kế Giao diện lƣới (Grid) cực kỳ khoa học cho phép tùy biến giao diện dễ dàng. Tận dụng các thành tựu mã nguồn mở có sẵn nhƣng NukeViet 3 vẫn đảm bảo rằng từng dòng code là đƣợc code tay. Điều này có nghĩa là NukeViet 3 hoàn toàn không lệ thuộc vào bất cứ framework nào trong quá trình phát triển của mình; Bạn hoàn toàn có thể đọc hiểu để tự lập trình trên NukeViet 3 nếu bạn biết PHP và MySQL (đồng nghĩa với việc NukeViet 3 hoàn toàn mở và dễ nghiên cứu cho bất cứ ai muốn tìm hiểu về code của NukeViet). 2. Kiến trúc Module NukeViet 3.0 tái cấu trúc lại module, theo đó, toàn bộ tệp tin của mỗi module đƣợc gói gọn trong một thƣ mục riêng nhằm đơn giản trong việc quản lý và đóng gói ứng dụng. Kiến trúc module này tạo ra khái niệm block của module và theme của module giúp đa dạng hóa việc trình bày module. Hệ thống NukeViet 3.0 hỗ trợ công nghệ đa nhân module. Chúng tôi gọi đó là công nghệ ảo hóa module. Công nghệ này cho phép ngƣời sử dụng có thể khởi tạo hàng ngàn module một cách tự động mà không cần động đến một dòng code. Các module đƣợc sinh ra từ công nghệ này gọi là module ảo. Module ảo là module đƣợc nhân bản từ một module bất kỳ của hệ thống nukeviet nếu module đó cho phép tạo module ảo. NukeViet 3.0 cũng hỗ trợ việc cài đặt từ động 100% các module kèm theo block, theme từ Admin Control Panel, ngƣời sử dụng có thể cài module mà không cần làm 24
- bất cứ thao tác phức tạp nào. NukeViet 3.0 còn cho phép bạn đóng gói module để chia sẻ cho ngƣời khác. Hệ thống cho phép quản lý module từ trong Admin Control Panel, quản trị cấp cao có thể phân quyền truy cập cũng nhƣ tạm ngƣng hoạt động hay thậm chí cài lại hoặc xóa module tùy theo nhu cầu sử dụng. 3. Đa ngôn ngữ NukeViet 3 đa ngôn ngữ 100% với giải pháp đa ngôn ngôn ngữ kép. Giải pháp này giúp xử lý triệt để vấn đề đa ngôn ngữ cho các website bằng cách tách thành 2 phần: đa ngôn ngữ giao diện (file ngôn ngữ tĩnh) và đa ngôn ngữ xử lý dữ liệu (database). NukeViet 3 có tính năng cho phép ngƣời quản trị tự xây dựng ngôn ngữ mới cho site. Cho phép đóng gói file ngôn ngữ để chia sẻ cho cộng đồng NukeViet 3.0 tách bạch ngôn ngữ quản trị và ngôn ngữ ngƣời dùng, ngôn ngữ giao diện và ngôn ngữ database giúp dễ dàng xây dựng và quản lý các hệ thống đa ngôn ngữ. 4. Phân quyền NukeViet 3.0 tách biệt 2 khu vực: Khu vực quản trị và Khu vực ngƣời dùng. Toàn bộ các tính năng quản lý nằm trong khu vực quản trị nhằm đảm bảo việc phân quyền đƣợc thực hiện chính xác và an toàn nhất. Phân quyền Quản trị: NukeViet 3.0 phân quyền theo module và theo ngôn ngữ, do đó dễ dàng xác lập quyền quản trị cho các hệ thống lớn, nhiều ngƣời quản trị cùng làm việc. Phân quyền thành viên: NukeViet 3.0 cho phép quản lý và phân nhóm ngƣời sử dụng thành các nhóm khác nhau để dễ dàng phân quyền ngƣời sử dụng theo từng module cụ thể. 5. Đa giao diện Cài đặt: NukeViet 3.0 hỗ trợ cài đặt và gỡ bỏ giao diện hoàn toàn tự động. Hơn thế nữa, bạn có thể đóng gói giao diện để chia sẻ cho website khác một cách dễ dàng. NukeViet hỗ trợ hệ thống đa giao diện cực kỳ uyển chuyển cho cả ngƣời sử dụng lẫn ngƣời lập trình. Với NukeViet 3.0, ngƣời sử dụng có thể tùy biến một cách dễ dàng: gán giao diện theo module, thiết lập bố cục giao diện cho từng tính năng của module. Với ngƣời thiết kế giao diện: có thể tùy ý thiết kế không giới hạn bố cục giao diện. Giao diện đã đƣợc tách bạch phần HTML và CSS khỏi PHP vì vậy ngƣời thiết kế tùy trình độ mà có thể can thiệp vào các lớp giao diện để chỉnh sửa hoặc thiết kế giao diện mới một cách dễ dàng. 25
- 6. Tùy biến site bằng Block NukeViet cho phép đa dạng hóa bố cục và chức năng cho website nhờ các khối (block) khác nhau trên website. Các khối này có thể là các ứng dụng, các khối quảng cáo hoặc dữ liệu bất kỳ nào đƣợc ngƣời sử dụng định nghĩa. Block của NukeViet 3 cũng phân theo 2 cấp: Block của hệ thống và block cho từng module. Ngƣời sử dụng có thể tùy ý bố trí vị trí block ở các vị trí khác nhau: toàn bộ website, theo từng module và thậm chí là từng tính năng của module. Block có thể có các giao diện khác nhau theo theme. Có thể hẹn giờ bật/tắt cũng nhƣ phân quyền cho từng đối tƣợng ngƣời truy cập. Việc bố trí block có thể thực hiện trong Admin Control Panel hoặc kéo thả trực quan ngay tại giao diện ngƣời dùng. 7. An ninh, bảo mật NukeViet 3 đƣợc thiết kế để nhận biết và chống các truy cập bất hợp pháp vào hệ thống cũng nhƣ gửi các dữ liệu có hại lên hệ thống. Dữ liệu gửi qua hệ thống đƣợc kiểm duyệt bằng bộ lọc an ninh nhằm ngăn chặn các dữ liệu có khả năng tấn công vào hệ thống. NukeViet có khả năng ngăn chặn, theo dõi và kiểm soát truy cập vào hệ thống của tất cả các máy chủ tìm kiếm nhƣ yahoo và google hay bất cứ máy chủ tìm kiếm nào khác. Hệ thống có khả năng chống Spam bằng Captcha, chống lụt dữ liệu bằng cách giới hạn thời gian gửi dữ liệu Hệ thống cho phép theo dõi, ghi nhận các thông số của máy tính truy cập đến site nhƣ: Hệ điều hành, Trình duyệt, quốc gia, các liên kết đến site (referer) để từ đó có thể kịp thời ngăn ngừa các nguy cơ tấn công bằng các hình thức nhƣ: kiểm tra và chặn các máy tình dùng proxy, chặn IP truy cập Hệ thống sẽ ghi nhận truy cập giúp ngƣời quản trị cũng nhƣ các thành viên dễ dàng phát hiện ra những đăng nhập bất hợp pháp từ lần đăng nhập trƣớc đó. Hệ thống có tích hợp tƣờng lửa mạnh, giúp chống các truy cập bất hợp pháp vào khu vực admin và vào site. Hệ thống có thể phát hiện các bản nâng cấp mới của phần mềm để nhắc nhở ngƣời sử dụng nâng cấp và sửa chữa các lỗi (nếu có) 26
- 8. Quản lý CSDL NukeViet 3 cho phép quản lý CSDL, ngƣời sử dụng có thể tối ƣu, sao lƣu trên máy chủ và tải dữ liệu về để phục vụ cho công tác phục hồi nếu xảy ra sự cố. NukeViet 3 cũng tự động sao lƣu dữ liệu hàng ngày, chức năng này có thể đƣợc cấu hình để đảm bảo thiệt hại là tối thiểu khi xảy ra tấn công. 9. Kiểm soát lỗi tự động và báo lỗi thông minh NukeViet 3.0 có hệ thống kiểm soát lỗi tự động và báo lỗi cho ngƣời dùng. Các lỗi (nếu có) sẽ đƣợc hệ thống kiểm soát có chủ đích, nó chỉ hiển thị lên màn hình ngƣời sử dụng ở lần đầu nó xuất hiện, sau đó hệ thống ghi nhận và báo về cho ngƣời quản trị qua email. 10. Tối ƣu hóa cho công cụ tìm kiếm (SEO) Hỗ trợ SEO link, Quản lý và tùy biến tiêu đề site. Hỗ trợ quản lý các thẻ meta nhƣ: keywords, description Hỗ trợ sử dụng keywords để phát sinh trang thống kê một cách tự động nhờ công cụ tìm kiếm. Có đầy đủ các công cụ hỗ trợ ping dữ liệu đến các máy chủ tìm kiếm. Hỗ trợ tạo sitemap cho các máy chủ tìm kiếm. 11. Sẵn sàng cho việc tích hợp các ứng dụng của bên thứ 3 NukeViet 3.0 sử dụng Cơ sở dữ liệu thành viên độc lập và xây dựng sẵn các phƣơng thức kết nối với các ứng dụng Forum. Cơ sở dữ liệu thành viên độc lập giúp việc quản lý thành viên đƣợc chủ động, khi có nhu cầu kết nối hoặc trao quyền quản lý cho các ứng dụng từ bên thứ 3, NukeViet 3.0 vẫn hoàn toàn chủ động với dữ liệu thành viên của mình. Với NukeViet 3.0, các kết nối trực tiếp dành cho Forum nhƣ PHPBB hay VBB đều sẵn sàng. 12. Hỗ trợ Đăng nhập phân tán NukeViet hỗ trợ OpenID, cho phép ngƣời truy cập có thể đăng nhập phân tán từ các hệ thống nhƣ Yahoo và Google hay các hệ thống OpenID khác giúp các website mới xây dựng có cơ hội thu hút lƣợng ngƣời sử dụng khổng lồ từ các hệ thống lớn. Trong mọi trƣờng hợp, hệ thống cho phép admin kiểm duyệt việc login openid. Tùy nhu cầu sử dụng mà có thể thiết đặt mức độ login cao nhất (tự động) tới mức độ vẫn phải đăng ký thành viên (bớt bƣớc kích hoạt qua email). Ngƣời sử dụng cũng có 27
- thể quản lý nhiều tài khoản openid để từ đó có thể đăng nhập bằng tài khoản bất kỳ (nếu hệ thống cho phép). 13. Trình soạn thảo tích hợp sẵn: Tại những vị trí phù hợp, NukeViet tích hợp sẵn bộ gõ tiếng Việt AVIM cũng nhƣ tích hợp sẵn và cho phép tùy chọn các trình soạn thảo giúp ngƣời sử dụng dễ dàng biên tập nội dung trên giao diện trực quan và thân thiện nhƣ làm việc với phần mềm Microsoft Word hay OpenOffice. Hiện tại NukeViet 3.0 đã sẵn sàng tích hợp các trình soạn thảo: Spaw2 FCKeditor CKeditor TiniMCE 14. Các tiện ích khác Hệ thống cho phép gửi mail bằng các phƣơng thức: SMTP, Linux Mail, PHPmail. Cho phép sử dụng phƣơng thức FTP để ghi file nếu máy chủ không cho phép làm điều đó bằng PHP. Cho phép xây dựng và quản lý các tác vụ xử lý tự động nhƣ tự động sao lƣu CSDL, tự động xóa các dữ liệu cũ hoặc gửi báo lỗi tới ngƣời quản trị Cung cấp đầy đủ các thông tin về hệ thống giúp nhà phát triển dễ dàng sử dụng các thông tin này phục vụ cho việc lập trình, kiểm tra và báo lỗi hệ thống. Nâng cấp và cài đặt tự động đƣợc tự động hoá ở mức cao. Cùng nhiều tính năng khác liên tục đƣợc bổ sung trong quá trình phát triển mà ngƣời sd có thể tham khảo tại website 8.5 Các Module tích hợp sẵn trong Nuke Viet 3.0 1. Giới thiệu (module About) Module about là mô hình cho phép ngƣời quản trị tạo ra các bài viết đơn lẻ. thƣờng đƣợc sử dụng để đăng các bài viết giới thiệu, không mang tính thời sự. Các tính năng của module này gồm có: - Tạo nhiều bài viết. - Sắp xếp thứ tự bài viết. - Cho hiển thị hoặc ẩn 1 bài viết. - Module cho phép tạo module ảo. 28
- 2. Quản trị và xuất bản Tin tức (module News) Hệ thống tin tức của NukeViet là hệ thống quản trị tin tức chuyên nghiệp đặc biệt phù hợp để bạn tạo các trang thông tin của của các sở ban ngành cũng nhƣ các trang thông tin kinh tế, văn hóa xã hội module cho phép xử lý nhiều tác vụ nền thông minh mà không cần ngƣời sử dụng can thiệp nhằm tối ƣu cho hệ thống tin tức, Ví dụ: tạo hình thu nhỏ, tự động chia thƣ mục và sắp xếp hình vào các thƣ mục theo thời gian Các tính năng chính của module News gồm có: - Quản lý chủ đề đa cấp trong đó bản tin có thể nằm ở 1 hoặc nhiều chủ đề không phụ thuộc quan hệ cha con giữa các chủ đề. - Quản lý nhóm tin liên quan (phân luồn tin theo dòng đơn) - Quản lý block tin (nhóm tin đa luồng) - Quản lý nguồn tin - Quản lý bình luận. - Tùy chỉnh bố cục trang tin. - Gửi bài viết, hẹn giờ đăng và nhiều tùy chỉnh khác: cho phép gửi bản tin, in, lƣu bản tin. - Cấp tin RSS 3. Quản lý thành viên (module User) Module này cho phép bạn quản lý tất cả ngƣời dùng trên hệ thống một cách tập trung. Các chức năng gồm có: - Quản lý việc đăng nhập, đăng ký. - Quản lý phƣơng thức đăng nhập: Qua openid hoặc đăng nhập trực tiếp. - Quản lý câu hỏi bảo mật. - Quản lý nội quy. - Quản lý thông tin thành viên. - Quản lý thông tin thành viên và các nhóm thành viên. - Hỗ trợ việc tích hợp các diễn đàn nhƣ phpbb, vbulletin để các thành viên của site có thể dùng chung tài khoản và đăng nhập 1 lần giữa portal và diễn đàn. 4. Quản lý liên hệ gửi đến website (module Contact) - Bạn đăng tải các thông tin để ngƣời truy cập có thể liên hệ với đơn vị bạn qua các hình thức: Email, điện thoại, trực tiếp. 29
- - Ngoài ngƣời truy cập có thể liên hệ qua form liên hệ trực tuyến, các thông tin khách hàng liên hệ bạn có thể xem trong phần quản trị website, hệ thống cũng gửi một email để thông báo cho bạn về nội dung khách hàng đã liên hệ. - Ngƣời quản trị: Quản lý các bộ phận tiếp nhận liên hệ, Quản lý và trả lời các thƣ gửi tới đã đƣợc phân quyền. - Module cho phép tạo module ảo. 5. Quản lý thăm dò ý kiến (module Voting) Bạn sử dụng module này để tạo ra các bình chọn trên website, ngƣời truy cập có thể xem kết quả bình chọn hoặc tham gia bình chọn. Các bình chọn có thể thêm vào bất kỳ vị trí nào trên website. 6. Quản lý quảng cáo chuyên nghiệp (module Banners) Công cụ này giúp bạn thiết lập các banner quảng cáo dƣới dạng hình ảnh, flash để quảng cáo cho các sản phẩm của bạn hoặc đặt liên kết đến đối tác, website liên kết. Ngoài ra module cho phép xây dựng hệ thống quảng cáo chuyên nghiệp nhờ chức năng Quản lý các khu vực quảng cáo, Quản lý khách hàng, giúp bạn và đối tác quảng cáo thống kê hiệu quả của quảng cáo thông qua các chỉ số về lƣợt click, thiết lập vị trí hiển thị, cách hiển thị 7. Quản lý tệp tin ngƣời dùng tải về (module Dowload) Module này giúp xây dựng một thƣ viện tệp tin, đồng thời giúp quản lý việc các tệp tin đƣợc ngƣời sử dụng tải về nhƣ thế nào. Các chức năng chính gồm có: - Quản lý thƣ mục đa cấp, phân quyền tải tệp tin. - Quản lý tệp tin - Đếm lƣợt tải file - Quản lý bình luận - Kiểm duyệt file gửi tới - Quản lý bình luận cho file - Quản lý báo lỗi file. - Cấp RSS 8. Quản lý liên kết (module Weblinks) Module này giúp xây dựng một thƣ viện các website mà khách hàng của bạn có thể quan tâm hoặc đơn giản là bạn có thể sử dụng và quản lý nhƣ một thƣ viện cho riêng mình. Các chức năng chính của module gồm có: - Quản lý chủ đề đa cấp 30
- - Quản lý liên kết, đếm lƣợt truy cập - Quản lý báo cáo về liên kết: lỗi, liên kết xấu 9. Thống kê truy cập (module Statistics) Module thống kê lƣợt truy cập vào website, số lƣợng ngƣời dùng đang online trên website. Các nội dung thống kê gồm có: - Thống kê theo năm, tháng, ngày, tuần, giờ. - Theo liên kết đến site - Theo quốc gia - Theo trình duyệt - Theo hệ điều hành - Máy chủ tìm kiếm 10. Các câu hỏi thƣờng gặp (module FAQ) Module này cho phép đăng tải các thông tin hỗ trợ ngƣời truy cập website, cho phép tổ chức nội dung theo danh mục, mỗi danh mục có thể đăng nhiều chủ đề trợ giúp khác nhau. Các chức năng chính: - Tạo chủ đề đa cấp. - Tạo các câu hỏi và câu trả lời. 11. RSS (module RSS) Module RSS giúp tổ chức và liệt kê các nguồn cấp RSS của site một cách tự động. Các nguồn RSS này có thể giúp website phát tán tin tức lên các hệ thống khác một cách nhanh chóng và thuận tiện. 12. Tìm kiếm (module Search) Module này giúp ngƣời truy cập có thể tìm kiếm dữ liệu trên website một cách nhanh chóng. Các chế độ tìm kiếm gồm có: - Tìm kiếm chung toàn hệ thống - Tìm kiếm nâng cao từng khu vực 13. Menu website (module Menu) Module menu có thể giúp thiết lập các loại menu cho website theo cách thức bất kỳ, đáp ứng đƣợc mọi yêu cầu về menu. 31
- 14. Gian hàng Online (module Shop) Dự án Phát triển module Shop (trên nền NukeViet 3.0) tích hợp cổng thanh toán điện tử NganLuong.VN giữa Công ty cổ phần phát triển nguồn mở Việt Nam (VINADES.,JSC) và Công ty cổ phần giải pháp phần mềm Hoà Bình (Peacesoft) là dự án nhằm mục tiêu thúc đây thƣơng mại điện tử ở Việt Nam bằng chính sức mạnh của mã nguồn mở. Dự án bắt đầu khởi động vào tháng 10/2010 và đã đƣợc công bố hoàn thành ngày 08/01/2011. Sau thời gian thử nghiệm và tập huấn cho các bên liên quan, bản opensource của dự án đƣợc phát hành cùng ngày với NukeViet 3.1 và đƣợc tích hợp hẳn vào bản phát hành NukeViet 3.2. Hệ thống đƣợc xây dựng với đầy đủ các tính năng cần thiết của một website thƣơng mại điện tử, bao gồm: - Tổ chức trình bày gian hàng theo tác tiêu chí: Loại sản phẩm, nhóm sản phẩm, sản phẩm mới cập nhật - Các tính năng phục vụ xem và chọn hàng: danh mục loại sản phẩm, giỏ hàng, sản phẩm cùng loại, sản phẩm mẫu, sản phẩm xem nhiều nhất - Đặt hàng: đƣa vào giỏ hàng với những sản phẩm cho phép đặt hàng. - Thanh toán trực tuyến bằng thẻ ATM qua hệ thống thanh toán của NganLuong.VN - Gửi đơn đặt hàng: thành viên website gửi đơn đặt hàng. - Lịch sử giao dịch: hiển thị lịch sử giao dịch của thành viên. Các chức năng quản trị module bao gồm: - Quản lý đơn vị tiền tệ: cho phép thêm, sửa, xóa các đơn vị tiền tệ. - Quản lý cổng thanh toán tích hợp: cấu hình các cổng thanh toán nếu có sử dụng 1 hoặc nhiều cổng thanh toán trực tuyến: nganluong.vn, baokim.vn, paypal.com - Cấu hình module: thiết lập các thông số cho hệ thống bán hàng - Quản lý đơn vị sản phẩm: thêm sửa xóa đơn vị sản phẩm (cái, chiếc, con ) - Quản lý danh mục loại sản phẩm: thêm, sửa, xóa danh mục loại sản phẩm - Quản lý nhóm sản phẩm (theo tiêu chí): thêm, sửa, xóa các nhóm sản phẩm. - Quản lý các block (nhóm sản phẩm). - Quản lý danh sách hãng sản xuất. - Quản lý danh sách các sản phẩm: thêm, sửa, xóa, tìm kiếm sản phẩm - Quản lý đơn đặt hàng và in hóa đơn. 32
- 8.6 Các tính năng quản trị của Nukeviet 3.0 1. Thông tin hệ thống - Cấu hình site - Cấu hình PHP - Tiện ích mở rộng - Các biến môi trƣờng - Các biến tiền định - Nhật ký hệ thống 2. Quản lý ngƣời quản trị - Thêm Quản trị - Cấu hình 3. Quản lý CSDL - Backup CSDL - Cấu hình backup 4. Cấu hình - Cấu hình theo ngôn ngữ - Cấu hình chung - Tiến trình tự động - Cấu hình SMTP - Cấu hình FTP - Máy chủ tìm kiếm - Quản lý IP cấm - Cấu hình upload - Kiểm tra phiên bản 5. Công cụ web - Dọn dẹp hệ thống - Chẩn đoán site - Hạng site theo từ khóa - Sitemap Ping 33
- - Kiểm tra phiên bản - Cập nhật theo Revision - Cấu hình 6. Ngôn ngữ - Ngôn ngữ data - Ngôn ngữ giao diện - Tạo n.ngữ giao diện - Kiểm tra ngôn ngữ - Cấu hình 7. Quản lý Modules - Thiết lập module - Thêm module ảo - Cài đặt tự động 8. Quản lý giao diện - Thiết lập layout - Quản lý block - Sao chép block - Thêm block - Cài đặt theme 9. Quản lý file tải lên - Upload hình (ảnh, flash và các loại tệp tin đƣợc cấp phép) từ máy tính hoặc một địa chỉ bất kỳ trên mạng. - Quản lý: Di chuyển, đổi tên, sửa, xóa, tạo hình thu nhỏ 34
- Chƣơng 2: KHẢO SÁT VÀ THIẾT KẾ HỆ THỐNG 1.Giới thiệu đề tài Ngày nay cùng với sự bùng nổ của cuộc cách mạng thông tin toàn cầu, thƣơng mai diện tử toàn cầu đa có một bƣớc đột phá lớn qua việc áp dụng thƣơng mại điện tử làm phƣơng tiện giao dịch và thực hiện nghiệp vụ thƣơng mại. Trong thƣơng mại tính phổ dụng. dễ dàng thuận tiện, an toàn và nhanh chóng trong giao dịch là yếu tố quyết định việc thành bại, vì vậy áp dụng thông tin là một yếu tố tất yếu Trong thời đại ngày nay, nhu cầu lƣu trữ và truyền tải thông tin là rất lớn. Khoa học và công nghệ phát triển đa giúp cho mỗi doanh nghiệp, mọi cá nhân có một công cụ làm việc và học tập vô cùng hiêu quả. Internet phát triển đa thâm nhập vào từng ngõ ngách, tầng lớp của xã hội, giúp cho mọingƣời đều đƣợc mở mang kiến thức, cập nhật mọi thông tin một cách nhanh nhất.Internet đa giúp cho các công ty và những cửa hàng nhỏ không ít trong việc quảng cáo. Với việc ra đời của những trang web thì những thông tin đầy đủ nhất của các công ty và các cửa hàng sẽ đến đƣợc với khách nhiều hơn. Và ngày nay mọi ngƣời trên thế giới sử dụng interner cho việc tìm kiếm thông tin và giao dịch mua bán rất đông và ngày càng phổ biến. Vì vậy việc thiết kế cho công ty một trang web để giới thiệu về sản phẩm trên internet là vô cùng cần thiết. Website có vai trò quan trọng nhƣ thế nào đối với sự phát triển kinh doanh của các doanh nghiệp. Và lợi nhuận của nó đem lại không phải là nhỏ. Đề tài của em là: Xây dựng Website bán máy tính của công ty HPIF 2. Yêu cầu bài toán đặt ra Công ty HPIF cần xây dựng 1 website bán máy tính, sản phẩm phần mềm trực tuyến. Công ty yêu cầu xây dựng 1 website có các chức năng nhƣ sau: - Quảng bá sản phẩm: Ngƣời tiêu dùng có thể: . Xem hình ảnh và thông tin chi tiết về sản phẩm . Tìm kiếm sản phẩm mình lựa chọn . Cập nhật thông tin về sản phẩm mới . Sửa đổi một số thông tin cũng như hình ảnh về sản phẩm - Đặt hàng: Ngƣời tiêu dùng đăng ký làm thành viên và có thể trực tiếp đặt mua sản phẩm. . Đăng nhập hệ thống 35
- . Lựa chọn mặt hàng . Đặt hàng 3.Phát biểu bài toán a. Quản Trị: - Khi nhận đƣợc danh sách các sản phẩm công ty nhập về, ngƣời quản trị sẽ cập nhật thông tin, số lƣợng của sản phẩm lên website. - Ngƣời quản trị có quyền cập nhật danh sách các thành viên và cấp quyền cho các thành viên đó. b. Bán hàng: Hằng ngày, ngƣời quản trị kiểm tra các đơn đặt hàng và giao các đơn hàng hợp lệ cho bộ phận bán hàng. Bộ phận bán hàng in phiếu giao hàng cho nhân viên giao hàng. Nếu giao hàng thành công, nhân viên giao hàng sẽ gửi hóa đơn cho khách hàng và nhận tiền, giao lại hóa đơn và tiền cho bộ phận bán hàng. Nếu giao hàng không thành công, nhân viên giao hàng sẽ báo cáo lại cho bộ phận bán hàng và trả lại hàng. c. Đặt hàng: Sau khi đăng nhập vào hệ thống, lựa chọn mặt hàng xong, khách hàng tiến hành đặt mua với số lƣợng mà mình muốn cho những mặt hàng trong giỏ hàng của mình. Khách hàng có thể xóa mặt hàng không muốn mua ra khỏi giỏ hàng của họ. Nếu đặt hàng thành công thì đơn đặt hàng sẽ đƣợc gửi về mail của ngƣời quản trị và ngƣời quản trị sẽ trực tiếp liên lạc với khách hàng. 4. Phân tích bài toán 4.1. Đối tƣợng sử dụng Có 3 đối tƣợng sử dụng hệ thống: - Khách: Là những ngƣời vào xem sản phẩm, xem giá nhƣng chƣa đăng ký thành viên. - Thành viên: Là những ngƣời đa đăng ký vào hệ thống, có quyền xem hàng, chọn hàng, mua hàng, thay đổi thông tin cá nhân - Ngƣời quản trị: Là ngƣời có toàn quyền trong việc kiểm soát và quản trị hệ thống website. Hoạt động của từng đối tƣợng: Khách vãng lai - Tìm kiếm sản phẩm mình quan tâm 36
- - Đăng ký làm thành viên hệ thống - Xem thông tin chi tiết và hình ảnh về sản phẩm Thành viên - Đăng nhập và thoát khỏi hệ thống - Thay đổi thông tin cá nhân - Lấy lại mật khẩu khi quên mật khẩu - Tìm kiếm và xem thông tin chi tiết về sản phẩm - Đặt hàng, xem giỏ hàng và thanh toán Ngƣời quản trị - Quản lý thành viên + Tìm thành viên + Thêm thành viên + Xóa thành viên - Quản lý sản phẩm + Tìm kiếm sản phẩm + Thêm sản phẩm + Sửa sản phẩm + Xóa sản phẩm + Ẩn sản phẩm - Quản lý đơn đặt hàng + Xem đơn đặt hàng + Xóa đơn đặt hàng 37
- 4.2. Sơ đồ tiến trình nghiệp vụ a. QUẢN TRỊ: Ngƣời quản trị HSDL Cập nhật hàng Danh sách hàng Danh sách nhân Cập nhật danh viên sách nhân viên Thống kê/ Báo cáo 38
- b. BÁN HÀNG Khách Kinh Doanh Bộ phận bán hàng HSDL Yêu cầu Xác nhận Danh sách đơn hàng mua đơn hàng Lập hóa đơn Danh sách hóa đơn Nhận hàng/trả tiền 39
- c. ĐẶT HÀNG Khách Hàng Kinh Doanh HSDL Đăng nhập hệ thống Lựa chọn Danh sách hàng hàng Nhập đơn hàng Lập đơn Danh sách đơn hàng hàng 40
- 4.2. Biểu đồ phân cấp chức năng HỆ THỐNG 1.Quản Trị 2. Bán Hàng 3.Đặt Hàng 1.1 Cập nhập 2.1 Kiểm tra đơn 3.1 Đăng nhập thông tin hàng hàng 1.2 Cập nhập 2.2 Cập nhập đơn 3.2 Lựa chọn nhân viên hàng hàng 2.3 Lập hóa đơn 3.3 Lập đơn đặt 1.3 Thống kê/Báo cáo hàng 3.4 Nhận đơn hàng Hình 2.1: Biểu đồ phân cấp chức năng hệ thống 41
- Danh sách hồ sơ sử dụng đƣợc ký hiệu: a Danh sách mặt hàng b Danh sách đơn đặt hàng c Danh sách khách hàng d Danh sách nhân viên e Danh sách hóa dơn Ma trận thực thể Các thực thể chức năng a Danh sách mặt hàng b Danh sách đơn đặt hàng c Danh sách khách hàng d Danh sách nhân viên e Danh sách hóa đơn Các chức năng nhiệm vụ a b c d e 1. Quản trị U U 2. Bán hàng R R R C 3. Đặt hàng R C C Hình 2.2: Ma trận thực thể chức năng của hệ thống 42
- 4.3. Sơ đồ mức ngữ cảnh và sơ đồ luồng của hệ thống 4.3.1. Sơ đồ ngữ cảnh hệ thống 0 Y/c thống kê Xem hàng HỆ THỐNG KHÁCH NGƢỜI QUẢN BÁN MÁY VÃNG LAI TRỊ Thông tin hàng TÍNH Thống kê Ph ả n h t hàng t ồ ặ i Đ THÀNH VIÊN Hình 2.3: Sơ đồ ngữ cảnh 43
- 4.3.2. Sơ đồ luồng dữ liệu a. Sơ đồ luồng mức 0 Tên mặt hàng 3.0 a Danh sách mặt hàng Số lƣợng mặt hàng KHÁCH HÀNG ĐẶT HÀNG Email Thông tin khách hàng thông báo b Danh sách đơn đặt hàng Phiếu giao hàng c Danh sách khách hàng Yêu cầu xác thực 2.0 NHÂN VIÊN Đơn hàng đúng BÁN HÀNG Đơn hàng sai d Danh sách nhân viên Yêu cầu cập nhật đơn hàng e Hóa đơn Danh sách nhân viên Yêu cầu thống kê a Danh sách mặt hàng 1.0 NHÂN VIÊN Thống kê b Danh sách đơn đặt hàng QUẢN TRỊ c Danh sách khách hàng Mặt hàng Hình 2.4 Sơ đồ luồng mức 0 của hệ thống 44
- b.Sơ đồ luồng dữ liệu mức 1 Sơ đồ luồng dữ liệu tiến trình: QUẢN TRỊ 1.1 a Danh sách mặt hàng CẬP NHẬT DANH SÁCH MẶT HÀNG Mặt hàng NHÂN VIÊN a Danh sách mặt hàng Yêu cầu thống kê Danh sách nhân viên Thống kê d Danh sách nhân viên e Hóa đơn 1.2 1.3 c Danh sách khách hàng CẬP NHẬT THỐNG DANH SÁCH d Danh sách nhân viên KÊ/BÁO CÁO b Danh sách đơn đặt hàng NHÂN VIÊN Hình 2.5: Sơ đồ luồng dữ liệu của tiến trình quản trị 45
- Sơ đồ luồng dữ liều tiền trình: BÁN HÀNG 2.1 b Danh sách đơn đặt hàng KIỂM TRA ĐƠN Đơn hàng sai HÀNG Yêu cầu xác thực Đơn hàng đúng Yêu cầu cập nhật đơn hàng NHÂN VIÊN 2.3 LẬP PHIẾU GIAO c Danh sách khách hàng HÀNG 2.2 c Danh sách nhân viên d Hóa đơn CẬP NHẬT ĐƠN HÀNG b Danh sách đơn đặt hàng Hình 2.5: Sơ đồ luồng dữ liệu của tiến trình bán hàng 46
- Sơ đồ luồng dữ liệu tiến trình: ĐẶT HÀNG 1.1 LỰA CHỌN MẶT HÀNG 1.2 M Mặt hàng Số lƣợng ặ CẬP NHẬT GIỎ t hàng mặt hàng HÀNG Số lƣợng Số Email thông báo KHÁCH HÀNG mặt hàng lƣợng M ặ mặt t hàng hàng 1.3 c Danh sách khách hàng Thông tin khách a Danh sách mặt hàng hàng LẬP ĐƠN HÀNG Đơn hàng 1.4 b Danh sách đơn đặt hàng GỬI ĐƠN HÀNG Hình 2.5: Sơ đồ luồng dữ liệu của tiến trình đặt hàng 47
- 5. Xây dựng cơ sở dữ liệu 5.1. Các thực thể và mô tả thực thể 5.1.1. Thực thể khách hàng – Thành viên matkhau email tendn tentv KHÁCH HÀNG diachi mobile phone Thuộc Tính Mô Tả tendn Tên đăng nhập matkhau Mật khẩu email Hộp thƣ tentv Tên thành viên diachi Địa chỉ phone Số điện thoại nhà riêng mobile Số di động 48
- 5.1.2. Thực thể hàng tensp anh masp HÀNG mota giaban trangthaisp Thuộc Tính Mô Tả masp Mã sản phẩm tensp Tên sản phẩm anh ảnh của sản phẩm giaban Giá bán trangthaisp Trạng thái sản phẩm mota Mô tả 49
- 5.1.3. Thực thể nhân viên pass username ten NHÂN VIÊN email diachi quyen Thuộc Tính Mô Tả username Tên đăng nhập của ngƣời quản trị pass Mật khẩu đăng nhập ten Họ tên ngƣời quản trị email Hộp thƣ diachi Địa chỉ quyen Quyền 50
- 5.1.4 Thực thể loại maloai LOẠI tenloai Thuộc Tính Mô Tả maloai Mã loại tenloai Tên loại 51
- 6. Thiết kế hệ thống 6.1 Xác định các liên kết 1 Cập nhật n HÀNG NHÂN VIÊN thông tin 1 Giao n NHÂN VIÊN HÀNG n Thuộc 1 HÀNG LOẠI Cập nhật 1 NHÂN VIÊN NHÂN VIÊN danh sách n 1 Đặt n KHÁCH HÀNG 52
- 6.2 Mô Hình ER mobie tendn diachi mahoadon tentv email matkhau tongtien n ngaylap KHÁCH HÀNG 1 tendn Giao tinhtrangsp phone trangthaisp soluong ngaylap username Cập nhật Đặt danh sách madonhang thanhtien diachi pass ngaydat giaban ngaytra 1 n n m 1 HÀNG Cập nhật 1 NHÂN VIÊN masp n thông tin quyen n mota anh tensp email ten trangthaisp maloai username Thuộc 1 LOẠI tenloai 53
- 6.3 Chuyển từ mô hình ER sang mô hình quan hệ - Biểu diễn các thực thể KHÁCH HÀNG KHÁCH HÀNG( tendn, matkhau, tentv, diachi,email,phone,mobie) HÀNG HÀNG( masp,tensp,anh,mota,trangthaisp,giaban) LOẠI LOẠI( maloai,tenloai) NHÂN VIÊN NHÂN VIÊN( username,pass, ten,email,diachi, quyen ) - Biểu diễn các mối quan hệ Đặt ĐƠN ĐẶT HÀNG( madonhang, ngaylap, soluong, tinhtrangsp, thanhtien, username, masp) Giao HÓA ĐƠN( mahoadon, ngaylap, tongtien, tendn, username, mahang) 54
- - Các bảng KHÁCH HÀNG tendn matkhau email tentv diachi phone mobie HÀNG masp tensp anh mota trangthaisp giaban NHÂN VIÊN username pass email diachi ten quyen LOẠI maloai tenloai ĐƠN ĐẶT HÀNG madonhang username masp soluong tinhtrangsp thanhtien username HÓA ĐƠN mahoadon ngaylap tongtien username tendn masp 55
- 6.4 Mô hình quan hệ 56
- 6.5 Thiết kế các bảng dữ liệu: Để thiết kế các bảng dữ liệu dƣới đây ta dùng hệ quản trị cơ sở dữ liệu MySQL. Bảng Khách hàng: Là bảng lƣu thông tin của khách hàng, thông tin lƣu trữ bao gồm: Tên Trƣờng Kiểu Dữ Liệu Ghi Chú tendn VARCHAR (20) Tài Khoản matkhau VARCHAR (40) Mật Khẩu tentv VARCHAR (30) Họ Tên phone VARCHAR (10) Số Máy Bàn mobie VARCHAR (13) Số Điện Thoại DiaChi VARCHAR (50) Địa Chỉ Email VARCHAR (30) Email - Bảng Hàng: Là bảng lƣu thông tin của hàng, thông tin lƣu trữ gồm: Tên Trƣờng Kiểu Dữ Liệu Ghi Chú Masp INT(11) Mã Hàng tensp VARCHAR (50) Tên Hàng anh VARCHAR (30) Ảnh Gia INT(11) Giá trangthaisp VARCHAR (13) Trạng Thái Hàng MoTa VARCHAR (2000) Mô Tả maloai INT(11) Mã Loại 57
- - Bảng Loại: Là bảng lƣu thông tin của loại hàng, thông tin lƣu trữ gồm: Tên Trƣờng Kiểu Dữ Liệu Ghi Chú maloai INT(11) Mã Loại tenloai VARCHAR (50) Tên Loại - Bảng Nhân viên: Là bảng lƣu thông tin của nhân viên, thông tin lƣu trữ gồm: Tên Trƣờng Kiểu Dữ Liệu Ghi Chú Username VARCHAR (20) Tài Khoản Nhân Viên pass VARCHAR (40) Mật Khẩu ten VARCHAR (30) Họ Tên Nhân Viên email VARCHAR (30) Email DiaChi VARCHAR (50) Địa Chỉ Quyen VARCHAR (10) Quyền - Bảng Hóa đơn: Là bảng lƣu thông tin các hóa đơn, thông tin lƣu trữ gồm: Tên Trƣờng Kiểu Dữ Liệu Ghi Chú mahoadon INT(11) Mã Hóa Đơn NgayLap DATE Ngày Lập TongTien FLOAT(12) Tổng Tiền tendn VARCHAR (20) Tài Khoản username VARCHAR (20) Tài Khoản Nhân Viên mahang INT(11) Mã Hàng 58
- Bảng Đơn đặt hàng: Là bảng lƣu thông tin các đơn đặt hàng, thông tin gồm: Tên Trƣờng Kiểu Dữ Liệu Ghi Chú madonhang INT(11) Mã Đơn Đặt Hàng NgayLap DATE Ngày Lập SoLuong INT(11) Số Lƣợng TinhTrang VARCHAR (20) Tình Trạng ThanhTien FLOAT(12) Thành Tiền NgayDat DATE Ngày Đặt NgayTra DATE Ngày Trả MaHang INT(11) Mã Hàng tendn VARCHAR (20) Tài Khoản 59
- Chƣơng 3: CÀI ĐẶT CHƢƠNG TRÌNH 3.1 Cài đặt chƣơng trình - Hệ điều hành WindownsXP, Windowns7, Windowns Vista 3.2 Một số giao diện chính a. Giao diện trang web 60
- b. Giao diện chức năng cập nhật sản phẩm c. Giao diện chức năng thêm thành viên 62
- d. Giao diện chức năng đăng ký thành viên 63
- e. Giao diện chức năng đặt hàng 64
- KẾT LUẬN Đồ án xây dựng một hệ thống Website của công ty TNHH thƣơng mại HPIF. Qua quá trình thực hiện đồ án, em đã tổng hợp lại đƣợc các kiến thức trong thời gian đã học tại Trƣờng. Đồng thời, em đã tìm hiểu và nắm đƣợc quy trình xây dựng hệ thống thông tin quản lý, nâng cao đƣợc kỹ năng lập trình, có thể chủ động trong việc tìm kiếm các thông tin để phục vụ công việc. Đồ án cơ bản đã xử lí hết các chức năng theo yêu cầu của Công ty Vì thời gian có hạn, kinh nghiệm thực tế chƣa nhiều nên việc phân tích bài toán về cơ bản đã thực hiện tƣơng đối đầy đủ, tuy nhiên chƣa mô tả đầy đủ mọi khía cạnh của vấn đề. Xây dựng đƣợc hệ thống nhƣng chỉ với các chức năng chính, có chức năng chƣa đầy đủ, nhiều chức năng có nhƣng chƣa tiện dụng và khá đơn giản. Hƣớng phát triển tiếp theo của đồ án là tích hợp việc thanh toán trực tuyến trên Internet thông qua các nhà cung cấp dịch vụ tại Việt Nam nhƣ: Onepay, SmartLink, 65
- TÀI LIỆU THAM KHẢO 1. HTML and CSS design and build Website by Jon Duckett. 2. Learning PHP, MySQL, JavaScript, and CSS: A Step by Step Guide to Creating Dynamic Websites by Robin Nixon. 3. Phân tích và thiết kế hệ thống thông tin quản lý –Nguyễn Văn Vỵ. 4. PHP and MySQL Web Development by Luke Welling and Laura Thomson. 5. CSS and Documents by Eric A.Meyer 66