1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo đồ án tốt nghiệp đề tài xây dựng website bán giầy onlinetrên mô hình mvc

69 2 0

Đ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

Tiêu đề Xây dựng website bán giầy online trên mô hình mvc
Tác giả Nguyễn Đức Tuyên
Người hướng dẫn Tô Hữu Nguyên
Trường học Đại học Thái Nguyên
Chuyên ngành Kỹ thuật phần mềm
Thể loại báo cáo đồ án tốt nghiệp
Năm xuất bản 2021
Thành phố Thái Nguyên
Định dạng
Số trang 69
Dung lượng 3,83 MB

Nội dung

Giờ đây, mọi việc liên quan đến thông tin trở nên thật dễ dàng cho người sử dụng: chỉ cần có một máy tính kết nối internet và một dòng dữ liệu truy tìm thì gần như lập tức… cả thế giới v

Trang 1

Thái Nguyên, 2021

Sinh viên thực hiện : Nguyễn Đức Tuyên

Mã Sinh Viên : DTC165D4801030013Giáo viên hướng dẫn: Tô Hữu Nguyên

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

THÁI NGUYÊN 

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG THÁI NGUYÊN

KHOA CÔNG NGHỆ THÔNG TIN

Sinh viên thực hiện : Nguyễn Đức Tuyên

Mã Sinh Viên : DTC165D4801030013Giáo viên hướng dẫn: Tô Hữu Nguyên

Trang 3

LỜI NÓI ĐẦU

Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem làmột trong những yếu tố mang tính quyết định trong hoạt động của các chínhphủ, tổ chức, cũng như của các công ty, nó đóng vai trò hết sức quan trọng, cóthể tạo ra những bước đột phá mạnh mẽ Mạng Internet là một trong những sảnphẩm có giá trị hết sức lớn lao và ngày càng trở thành một công cụ không thểthiếu, là nền tảng chính cho sự truyền tải, trao đổi thông tin trên toàn cầu Giờđây, mọi việc liên quan đến thông tin trở nên thật dễ dàng cho người sử dụng:chỉ cần có một máy tính kết nối internet và một dòng dữ liệu truy tìm thì gầnnhư lập tức… cả thế giới về vấn đề mà bạn đang quan tâm sẽ hiện ra, có đầy đủthông tin, hình ảnh và thậm chí đôi lúc có cả những âm thanh nếu bạn cần…Bằng internet, chúng ta đã thực hiện được nhiều công việc với tốc độ nhanh hơn

và chi phí thấp hơn nhiều so với cách thức truyền thống Chính điều này, đã thúcđẩy sự khai sinh và phát triển của thương mại điện tử và chính phủ điện tử trênkhắp thế giới, làm biến đổi đáng kể bộ mặt văn hóa, nâng cao chất lượng cuộcsống con người Trong hoạt động sản xuất, kinh doanh, giờ đây, thương mạiđiện tử đã khẳng định được vai trò xúc tiến và thúc đẩy sự phát triển của doanhnghiệp Đối với một cửa hàng hay shop, việc quảng bá và giới thiệu đến kháchhàng các sản phẩm mới đáp ứng được nhu cầu của khách hàng sẽ là cần thiết.Vậy phải quảng bá thế nào đó là xây dựng được một Website cho cửa hàng củamình quảng bá tất cả các sản phẩm của mình bán

Vì vậy, chúng em đã thực hiện đồ án “Xây dựng website bán giầy online trên mô hình MVC” có nội dung như sau:

Người chủ doanh nghiệp mong muốn đưa các sản phẩm đó lên website củamình Khách hàng có thể đặt mua hàng trên website mà không cần đến cửa hàng

Trang 4

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 bán

giầy online trên mô hình MVC” 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ếnthứ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 Tô Hữu Nguyên, Giảng viênKhoa Công Nghệ Thông Tin, Trường Đại Học Công Nghệ Thông Tin và TruyềnThông Thái Nguyên, người đã trực tiếp hướng dẫn, nhận xét, giúp đỡ em trongsuốt quá trình thực hiện đồ án

Xin chân thành cảm ơn ban giám hiệu nhà trường, các thầy cô trong KhoaCông Nghệ Thông Tin và các phòng ban nhà trường đã tạo điều kiện tốt nhấtcho 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ệpVới kiến thức hạn chế, tài liệu tham khảo chưa nhiều nên đồ án không tránh khỏinhững sai sót, kính mong quý thầy cô cùng các bạn chia sẻ, góp ý để đồ án đượchoàn thiện

Em xin chân thành cảm ơn!

Thái Nguyên, Ngày 3 Tháng 6 Năm 2021

Sinh viênNguyễn Đức Tuyên

Trang 5

MỤC LỤC

MỤC LỤC i

CHƯƠNG 1 : TỔNG QUAN VỀ MYSQL VÀ PHP 1

1.1 Tổng quan về MySQL 1

1.1.1 Khởi động và sử dụng 1

1.1.2 Một số thuật ngữ 1

1.1.3 Loại dữ liệu trong MySQL 1

1.1.4 Những cú pháp cơ bản 2

1.2 TỔNG QUAN VỀ PHP 3

1.2.1 Lịch sử phát triển 3

1.2.2 Cấu trúc cơ bản 4

1.2.3 Xuất giá trị ra trình duyệt 5

1.2.4 Biến, hằng, chuỗi và các kiểu dữ liệu 5

1.2.5 Các phương thức được sử dụng trong lập trình PHP 6

1.2.6 Cookie và Session trong PHP 7

1.2.7 Hàm 8

CHƯƠNG 2 : MÔ HÌNH KIẾN TRÚC MVC 10

2.1 MVC là gì? 10

2.2 Xuất Xứ của mô hình MVC 10

2.3 Đặc điểm của mô hình MVC 11

2.4 Kiến trúc mô hình MVC 11

2.4.1 Thành phần Controller 13

2.4.2 Thành phần Model 13

2.4.3 Thành Phần View 14

2.5 Ưu điểm và nhược điểm của MVC 15

2.5.1 Ưu điểm 15

2.5.2 Nhược điểm 16

2.6 Cấu trúc Web MVC 16

CHƯƠNG 3: ỨNG DỤNG VÀO BÀI TOÁN THỰC TẾ 17

Trang 6

3.1 Tên đề tài 17

3.2 Lí do chọn đề tài 17

3.3 Lựa chọn công cụ ngôn ngữ thực hiện: 17

3.4 Khảo sát xây dựng hệ thống 17

3.4.1 Đặt vấn đề 17

3.4.2 Website cần xây dựng 18

3.4.3 Website cần xây dựng 19

3.4.4 Yêu cầu đặt ra 19

3.5 Phân tích và thiết kế cơ sở dữ liệu 20

3.5.1 Định nghĩa bài toán 20

3.5.2 Các nhóm chức năng của hệ thống 21

3.5.3 Xác định các tác nhân 21

3.6 Xác định các USE CASE , xây dựng biểu đồ USE CASE chi tiết 21

3.6.1 Xác định các Use case 21

3.6.2 Biểu đồ UC 23

3.6.3 Biểu đồ lớp 27

3.6.4 Biểu đồ trình tự các chức năng 29

3.7 Thiết kế cơ sở dữ liệu 39

3.8 Mô hình dữ liệu quan hệ 44

CHƯƠNG 4: HOÀN THIỆN SẢN PHẨM 45

4.1 Giao diện trang chủ dành cho khách hàng 45

4.1.1 Giao diện trang chủ 45

4.1.2 Menu dọc 46

4.1.3 Danh sách sản mới nhất 46

4.1.4 Danh sách các sản phẩm đang bán 47

4.1.5 Phần Đăng Ký 47

4.1.6 Phần đăng Nhập 48

4.1.7 Phần Mua hàng chọn size số lượng 48

4.1.8: Phần Giỏ Hàng 48

Trang 7

4.1.10 Thanh toán bằng Paypal 49

4.1.11 Thanh toán bằng MOMO (QR) 50

4.1.12 Thanh toán bằng ATM (Banking) 50

4.1.13 Xem đơn hàng đã mua 51

4.1.14 Chat khi cần hỗ trợ 51

4.1.15 Email thông báo đã mua hàng 52

4.2 Giao diện dành cho quản lý 52

4.2.1 Giao diện đăng nhập 52

4.2.2 Giao diện xem thông tin 52

4.2.3 Giao diện thêm thông tin 53

4.2.4 Giao diện sửa thông tin 53

4.2.5 Chức năng xuất ra file excel,pdf,csv,copy 53

4.2.6 Chức năng thống kê doanh số theo tháng 54

4.2.7 Chức năng thống kê hàng tồn kho 54

4.2.8 Chức năng thống kê doanh thu 55

4.3 Up load Website lên Host 55

TÀI LIỆU THAM KHẢO 56

KẾT LUẬN 57

Trang 8

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Thái Nguyên, Ngày 3 Tháng 6 Năm 2021

Giáo viên hướng dẫn

(Ký tên,ghi rõ họ tên)

Trang 9

CHƯƠNG 1 : TỔNG QUAN VỀ MYSQL VÀ PHP 1.1 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.

1.1.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:

26 Start/ Appserv/ MySQL command Line client Sau đó nhập password mà

chúng ta đã đặt vào

1.1.2 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.

1.1.3 Loại dữ liệu trong MySQL

IU

Trang 10

1.1.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 (<tên_cột><mô_tả>,…,<tên_cột_n>

… <mô_tả_n>)

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:

ALTER TABLE tên_bảng ADD <tên_cột><thuộc_tính> AFTER

<tên_cột>

- 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ó wherehoặc không) ORDER BY Theo quy ước sắp xếp Trong đó quy ước sắp xếp baogồ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 recordtrong bảng

Trang 11

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óa toàn bộ giá trị của các record trong bảng.

1.2 TỔNG QUAN VỀ PHP

1.2.1 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 9thá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 đượccô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áttriển PHP tự mãn Cộng đồng PHP đã nhanh chóng giúp họ nhận ra những yếuké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

Trang 12

Zend Engine 2.0, lõi của PHP 5.0 Một thảo luận trên Slashdot đã cho thấy

việc phát

Trang 13

triển PHP 5.0 có thể đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng nhữngbài phỏng vấn Zeev liên quan đến phiên bản này thì đã có mặt trên mạng

Internet vào khoảng tháng 7 năm 2002.

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 7nă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ẫncòn một số lỗi trong đó đáng kể là lỗi xác thực HTTP

Trang 14

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ụ: <?php echo ”Hello world!”; ?>

1.2.3 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 …

Nếu giữa hai chuỗi muốn liên kết với nhau ta sử dụng dấu "."

1.2.4 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

1 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, tuynhiê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áccông việc, nghĩa là vừa khai 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ủangười lập trình mong muốn trên chúng

- 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ố

Trang 15

+ 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épgá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

$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 "."

- 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 :

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

1.2.5 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ừ webserver.

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

Trang 16

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.

1.2.6 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

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.

1. Để 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);

2. Để 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.

3. Để 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")

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ứ.

Trang 17

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")

4. 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.

5. Để 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

1.2.7 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ậptrì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ạohay viết lại mã lệnh như HTML thuần

Hàm tự định nghĩa Cú pháp: function function_name()

{//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

Trang 18

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ề

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

.3 Kết hợp PHP và MySQL trong ứng dụng website Kết nối cơ sở dữ liệu

MySQL_connect("hostname","user","pass");

Lựa chọn cơ sở dữ liệu

MySQL_select_db("tên_CSDL");

Thực thi câu lệnh truy vấn

MySQL_query("Câu truy vấn ở đây");

Trang 19

CHƯƠNG 2 : MÔ HÌNH KIẾN TRÚC MVC 2.1 MVC là gì?

MVC là viết tắt của Model – View – Controller Là một trong nhữngdesign pattern Được vận hành để tách mã lệnh thành 3 phần riêng biệt Ở mỗiphần MVC sẽ có những chức năng đặc thù Để xử lý các tác vụ mà request gởitới MVC làm cho mã lệnh trở nên trong sáng, dễ phát triển và dễ nâng cấp theothời gian Để làm việc tốt đối với MVC, chúng ta cần nắm thật vững kiến thứcOOP Bản chất của các framework khác cũng được hình thành trên lý thuyếtMVC Do vậy nếu chúng ta nắm tốt MVC Thì ở những framework khác chắcchắn sẽ không cảm thấy khó hiểu

 Model: Là thành phần chịu trách nhiệm xử lý các thao tác trêndatabase Và gởi trả kết quả thông qua view

 View: Là phần hiển thị thông tin trên website, sau khi đi qua controller

và nhận kết quả từ phía model thì view là bước cuối cùng để chuyểnthông tin tới người dùng

 Controller: Là phần điều hướng các request tới những tác vụ tươngứng Controller là một phần không thể thiếu ở bất cứ framework nào

Vì nó có trách nhiệm gởi và nhận request từ hệ thống tới người sửdụng

2.2 Xuất Xứ của mô hình MVC

Tất cả bắt đầu vào những năm 70 của thế kỷ 20, tại phòng thí nghiệmXerox PARC ở Palo Alto Sự ra đời của giao diện đồ họa (Graphical UserInterface) và lập trình hướng đối tượng (Object Oriented Programming) chophép lập trình viên làm việc với những thành phần đồ họa như những đối tượng

đồ họa có thuộc tính và phương thức riêng của nó Không dừng lại ở đó, nhữngnhà nghiên cứu ở Xerox PARC còn đi xa hơn khi cho ra đời cái gọi là kiến trúcMVC (Viết tắt của Model

– View – Controller)

MVC được phát minh tại Xerox Parc vào những năm 70, bởiTrygveReenskaug MVC lần đầu tiên xuất hiện công khai là trong Smalltalk –

Trang 20

80 Sau đó trong một thời gian dài hầu như không có thông tin nào về MVC,ngay cả trong tài liệu 80 Smalltalk Các giấy tờ quan trọng đầu tiên đ ợcƣ công

bố trên

Trang 21

MVC là “A Cookbook for Using the Model – View – Controller User InterfaceParadigm in Smalltalk – 80”, bởi Glenn Krasner và Stephen Pope, xuất bảntrong tháng 8 tháng 9 năm 1988.

2.3 Đặc điểm của mô hình MVC

Cái lợi ích quan trọng nhất của mô hình MVC là nó giúp cho ứngdụng dễ bảo trì, module hóa các chức năng, và được xây dựng nhanh chóng.MVC tách các tác vụ của ứng dụng thành các phần riêng lẻ model, view,controller giúp cho việc xây dựng ứng dụng nhẹ nhàng hơn Dễ dàng thêm cáctính năng mới, và các tính năng cũ có thể dễ dàng thay đổi MVC cho phép cácnhà phát triển và các nhà thiết kế có thể làm việc đồng thời với nhau MVC chophép thay đổi trong 1 phần của ứng dụng mà không ảnh hưởng đến các phầnkhác

Sở dĩ như vậy vì kiến trúc MVC đã tách biệt (decoupling) sự phụ thuộcgiữa các thành phần trong một đối tượng đồ họa, làm tăng tính linh động(flexibility) và tính tái sử dụng (reusebility) của đối tượng đồ họa đó Một đốitượng đồ họa bấy giờ có thể dễ dàng thay đổi giao diện bằng cách thay đổi thànhphần View của nó trong khi cách thức lưu trữ (Model) cũng như xử lý(Controller) không hề thay đổi Tương tự, ta có thể thay đổi cách thức lưu trữ(Model) hoặc xử lý (Controller) của đối tượng đồ họa mà những thành phần cònlại vẫn giữ nguyên

Chính vì vậy mà kiến trúc MVC đã được ứng dụng để xây dựng rất nhiềuframework và thư viện đồ họa khác nhau Tiêu biểu là bộ thư viện đồ họa củangôn ngữ lập trình hướng đối tượng SmallTalk (cũng do Xerox PARC nghiêncứu và phát triển vào thập niên 70 của thế kỷ 20) Các Swing Components củaJava cũng được xây dựng dựa trên kiến trúc MVC Đặc biệt là nền tảngASP.NET MVC Frame work

2.4 Kiến trúc mô hình MVC

Trong kiến trúc MVC, một đối tượng đồ họa người dùng(GUI Component) bao gồm 3 thành phần cơ bản: Model, View, và Controller Model có tráchnhiệm đối với toàn bộ dữ liệu cũng như trạng thái của đối tượng đồ họa View

Trang 22

chính là thể hiện trực quan của Model, hay nói cách khác chính là giao diện của

Trang 23

đối tượng đồ họa Và Controller điều khiển việc tương tác giữa đối tượng đồ họa với người sử dụng cũng như những đối tượng khác.

Khi người sử dụng hoặc những đối tượng khác cần thay đổi trạng thái củađối tượng đồ họa, nó sẽ tương tác thông qua Controller của đối tượng đồ họa.Controller sẽ thực hiện việc thay đổi trên Model Khi có bất kỳ sự thay đổi nàoxảy ra ở Model, nó sẽ phát thông điệp ( broadcast message) thông báo cho View

và Controller biết Nhận được thông điệp từ Model, View sẽ cập nhật lại thểhiện của mình, đảm bảo rằng nó luôn là thể hiện trực quan chính xác của Model.Còn Controller, khi nhận được thông điệp từ Model, sẽ có những tương tác cầnthiết phản hồi lại người sử dụng hoặc các đối tượng khác

Lấy ví dụ một GUI Component (thành phần đồ họa người dùng) đơn giản

là Checkbox Checkbox có thành phần Model để quản lý trạng thái của nó làcheck hay uncheck, thành phần View để thể hiện nó với trạng thái tương ứng lênmàn hình, và thành phần Controller để xử lý những sự kiện khi có sự tương táccủa người sử dụng hoặc các đối tượng khác lên Checkbox Khi người sử dụngnhấn chuột vào Checkbox, thành phần Controller của Checkbox sẽ xử lý sự kiệnnày, yêu cầu thành phần Model thay đổi dữ liệu trạng thái Sau khi thay đổitrạng thái, thành phần Model phát thông điệp đến thành phần View vàController Thành phần View của Checkbox nhận được thông điệp sẽ cập nhậtlại thể hiện của Checkbox, phản ánh chính xác trạng thái Checkbox do Modellưu giữ Thành phần

Trang 24

Controller nhận được thông điệp do Model gởi tới sẽ có những tương tác phảnhồi với người sử dụng nếu cần thiết.

2.4.1 Thành phần Controller

Controller có trách nhiệm chính là điều hướng các yêu cầu của người sửdụng Như vậy trên toàn ứng dụng của ta, tất cả các request đều sẽ phải đi tớicontroller Và tại đây, ứng với các tham số người sử dụng truyền mà ta đưa họđến một tác vụ nào đó trên ứng dụng

Tại các tác vụ này, chúng sẽ thông qua lớp model để làm việc và trả kếtquả trở về controller Cuối cùng controller sẽ đẩy dữ liệu thao tác tới view View

là thành phần cuối cùng mà người sử dụng nhận được khi họ giở request tới ứngdụng

Có thể hiểu controller, giống với kỹ thuật đa cấp với các tác vụ chạy ứngdụng phân cấp theo từng nhánh riêng biệt như: Module, action

2.4.2 Thành phần Model

Model là thành phần chủ yếu được sử dụng để thao tác xử lý dữ liệu.Trong các framework, Model vẫn thường sử dụng theo phương thức ActiveRecord Một trong những design pattern Chúng có tác dụng rút ngắn thời gianviết câu truy vấn cho người sử dụng Biến những câu truy vấn phức tạp trở nêngần gũi và thân thiện với người sử dụng thông qua các thư viện được định nghĩasẵn

Model thường sẽ là các phương thức có trách nhiệm xử lý các tác vụ như:select, insert, update, delete các record trong database Ứng với các lấy dữ liệu,model thường sử dụng mảng để gởi trả kết quả về Vì mảng có thể cho phépmodel lưu trữ nhiều thông tin hơn, nên thường các record khi bóc tách chúng sẽmang các dữ liệu của database một cách chi tiết

Khi sử dụng models, ta cũng cần tuân theo nguyên tắc chính của chúng làkhông xuất giá trị trực tiếp trong model Mà tất cả những dữ liệu ấy, phải đưavào mảng và trả về theo phương thức Và tiếp tục ở view ta sẽ sử dụng nó để lấy

dữ liệu ra

Trang 25

2.4.3 Thành Phần View

View là phần hiển thị thông tin tương phản khi gởi và nhận request Trướcđây, khi người lập trình chưa nghĩ tới view Họ thường thao tác xử lý dữ liệungay trực tiếp trên ứng dụng và đổ cả dữ liệu ngay trên file PHP đó Điều nàylàm cho ứng dụng trở nên cồng kềnh, và đặc biệt rất khó cho việc bảo trì nângcấp sau này Nhất là đối với designer, việc thay đổi giao diện của một websiteluôn làm cho họ cảm thấy đau đầu vì phải vọc thẳng vào core

Trước đây, để giải quyết tình huống này Người ta thường sử dụngtemplate để phân tách website thành 2 mảng riêng biệt Một là giao diện và một

là core Việc chỉnh sửa giao diện trở nên đơn giản hơn đối với họ so với cách viếtthập cẩm kia Tuy nhiên, các thư viện này thực chất sẽ làm cho ứng dụng củachúng ta trở nên chậm chạp hơn bao giờ hết Bởi chúng phải phiên dịch nhiều lầncác kịch bản

Chẳng hạn, để dễ thao tác, smarty sẽ dịch ngược các yêu cầu của bạn sangngôn ngữ của nó Sau đó chúng sẽ chuyển ngôn ngữ đó sang PHP và thao tác xử

lý trên nó Việc này sẽ làm ứng dụng chậm chạp, do cứ phải dịch qua, dịch lạimột kịch bản Trong khi, với sự kết hợp của PHP thuần, ứng dụng của bạn sẽnhanh và ổn định hơn nhiều Và view cũng là một phần trong việc nâng cấpnhững hạn chế ấy Chúng giúp giảm thiểu tối đa quá trình biên dịch nhiều lần Vàlàm cho ứng dụng trở nên mạnh mẽ và chuyên nghiệp hơn nhiều so với cách lậptrình thuần

Cách thức hoạt động của MVC

Trang 26

Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC:

 User tương tác với View, gửi yêu cầu đến Controller

 Controller nhận và điều hướng chúng đến đúng phương thức xử lý

ở Model

 Model nhận thông tin và thực thi các yêu cầu

 Khi Model hoàn tất việc xử lý Controller sẽ nhận kết quả từ Model

và gửi về View để hiển thị lại kết quả vừa nhận cho người dùng

2.5 Ưu điểm và nhược điểm của MVC

Tạo thành mô hình chuẩn cho nhiều dự án, các chuyên gia sẽ tiếp cận –tìm hiểu những dự án đó một cách nhanh chóng và hiệu quả Nếu bạn nắm rõ môhình MVC của một dự án nào đó, thì khi tiếp cận với một dự án khác mà bạnchưa từng biết hoặc tiếp xúc, nhưng nó lại được xây dựng với mô hình MVC thì

sẽ không khó khăn gì mà cực kỳ dễ dàng Học một nhưng có thể hiểu và sử dụngđược mười

Giúp các chuyên gia lập trình, nhà quản lý, nhà đầu tư, PM… có thể hiểuđược dự án hoạt động ra sao hoặc giúp các lập trình viên dễ dàng quản lý – pháttriển dự án Nó không phải ngôn ngữ, nhưng khi họ cùng nhìn vào nó thì sẽ tựhiểu nó là gì, khi đó họ có thể trao đổi các yêu cầu và bàn bạc công việc

Đây là một mô hình chuẩn, nó tối ưu nhất hiện nay so với nhiều mô hìnhkhác và được sử dụng trong nhiều dự án và nhiều lĩnh vực, đặc biệt trong côngnghệ sản xuất ứng dụng – phần mềm Các lập trình viên sử dụng mô hình chuẩn

Trang 27

Đây là mô hình đơn giản, xử lý những nghiệp vụ đơn giản, và dễ dàngtriển khai với các dự án nhỏ

2.6 Cấu trúc Web MVC

Trong thư mục admin chứa các thư mục mô hình MVC: Controller,Model, View và các thành phân khác được phân chia rõ rang

Trang 28

CHƯƠNG 3: ỨNG DỤNG VÀO BÀI TOÁN THỰC TẾ

3.3 Lựa chọn công cụ ngôn ngữ thực hiện:

Để thực hiện xây dựng website này nhóm em chọn PHP và HTML

PHP rất thích hợp với việc viết cho web, bên cạnh đó khi sử dụng chúngcũng có thể nhúng được vào trang HTML một cách dễ dàng Hiện nay, PHPđang là một ngôn ngữ lập trình cho web được sử dụng và biết đến vô cùng phổbiến trên thế giới Lý do là bởi việc tối ưu hóa các ứng dụng của web, việc cótốc độ nhanh và nhỏ gọn Bên cạnh đó, các cú pháp của PHP cũng giống với là

C và Java nên các lập trình viên có thể học và xây dựng được một sản phẩm làtương đối nhanh so với các ngôn ngữ khác

3.4 Khảo sát xây dựng hệ thống

3.4.1 Đặt vấn đề

Ngày nay công nghệ thông tin đã có những bước tiến phát triển mạnh mẽ

về cả chiều sâu và chiều rộng Máy tính điện tử giờ đây không còn là thứ quýhiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí của conngười Những năm gần đây, việc cập nhật các thông tin cũng như thực hiện cácgiao dịch qua mạng internet ngày càng trở nên phổ biến Và một loại hình kinh

Trang 29

doanh này mang

Trang 30

lại rất nhiều lợi ích cho người tiêu dùng cũng như nhà cung cấp Phần lớn kháchhàng có nhu cầu mua hàng thì phải đến các cửa hàng, siêu thị hay các trung tâmthương mại để lựa chọn những mặt hàng hợp với nhu cầu của mình Công việcnày tốn kém nhiều thời gian và chi phí đi lại cho người tiêu dùng, đôi khi kháchhàng còn mua phải hàng kém chất lượng Tất cả những bất cập đó sẽ được loại

bỏ với sự ra đời của website bán hàng qua mạng Khi khách hàng có nhu cầumua hàng, dù ở nhà hay công sở hay bất cứ nơi đâu có mạng internet, kháchhàng chỉ cần truy cập vào những trang web bán hàng qua mạng là có thể tìmkiếm được nhũng mặt hàng mà mình muốn mua, khách hàng có thể thực hiệncác thủ tục được hướng dẫn trên trang web là có thể mua được hàng, nhân viêncủa công ty đó sẽ giao hàng đến tận nơi cho khách hàng Ngoài những lợi ích màInternet mang lại cho người tiêu dùng nó còn giúp cho nhà cung cấp phát triểnrất nhiều trong việc mở rộng thị trường, giúp thương hiệu của công ty đượcnhiều người biết đến, từ đó giảm được rất nhiều chi phí quảng cáo cho sản phẩm

và rất thuận tiện trong việc quản lý sản phẩm và chăm sóc khách hàng theo đúngphương trâm đặt ra

3.4.2 Website cần xây dựng

Nhận thấy rằng, khi sử dụng khi sử dụng mysql trên xampp để thiết kế vàlưu trữ cơ sở dữ liệu thì khả năng lưu trữ dữ liệu của nó là rất lớn, nó còn có khảnăng phân tán dữ liệu cao Cơ sở dữ liệu lưu trữ được khối lượng lớn vì vậy khiứng dụng trên website, ứng dụng Website có số lượng người truy cập cùng mộtlúc rất lớn thì luôn đáp ứng được nhu cầu cần thiết Vì vậy chúng em đã sử dụngmysql trên xampp để thiết kế và lưu trữ CSDL cho website để đáp ứng nhu cầubài toán đặt ra

Môi trường triển khai : ứng dụng được triển khai trên môi trường web

Công cụ và ngôn ngữ sử dụng để thiết kế trang web:

- html, Css, Mvc

- bootstrap

- javascrip

Trang 31

- mysql trên xampp

3.4.3 Website cần xây dựng

- Nhóm chức năng đăng ký, đăng nhập thành viên

- Nhóm chức năng xem thông tin : Xem thông tin sản phẩm, giỏ hàng, đơn hàng, thông tin cá nhân, xem thông tin đơn hang đã mua

- Nhóm chức năng quản lý thông tin: Quản lý thông tin cá nhân, quản lý thông tin khách hàng, quản lý danh mục sản phẩm

- Nhóm chức năng nhập, xuất hàng và cập nhật thông tin lên website

- Nhóm chức năng mua hàng, tiếp nhận và xử lý đơn hang,thanh toán

- Nhóm chức năng thống kê, báo cáo, biểu đồ

- Hiển thị danh sách các mặt hàng của cửa hàng để khách hàng xem, lựa chọn và mua

- Khách hàng xem các thông tin tin tức mới

- Sau khi khách hàng chọn và đặt hàng trực tiếp thì phải hiện lên

đơn hàng để khách hàng có thể nhập thông tin mua hàng và xem hoá đơn mua hang và tiến hành thanh toán

Trang 32

Thứ hai : Dành cho người quản trị: Người làm chủ ứng dụng có quyền kiềm

soát mọi hoạt động của hệ thống Người này được cấp username và password đểđăng nhập hệ thống thực hiện chức năng của mình

- Chức năng cập nhật, sửa, xoá các mặt hàng, loại hàng, nhà sản xuất, tintức (phải kiểm soát được hệ thống) Nó đòi hỏi sự chính xác

- Tiếp nhận kiểm tra đơn đặt hàng của khách hàng Hiển thị đơn đặt hàng

- Thống kê theo ngày, khoảng thời gian Ngoài các chức năng trên thì trangWeb phải được thiết kế sao cho dễ hiểu, giao diện mang tính dễ dùng đẹpmắt và làm sao cho khách hàng thấy được thông tin cần tìm, cung cấp cácthông tin quảng cáo hấp dẫn, các tin tức khuyến mãi để thu hút kháchhàng Điều quan trọng là phải đảm bảo an toàn tuyệt đối thông tin kháchhàng trong quá trình đặt mua qua mạng

3.5 Phân tích và thiết kế cơ sở dữ liệu

3.5.1 Định nghĩa bài toán

Sau khi khảo sát hiện trạng của hệ thống và xây dựng hệ thống thì em đãđưa ra các tệp CSDL của “Xây dựng website bán giầy online”

Các tệp CSDL được lưu trong file shop_giay.sql trong file báo cáo

Qua quá trình khảo sát, phân tích thực trạng và xây dựng hướng phát triểncho hệ thống mới em đã xây dựng cấu trúc của hệ thống “Xây dựng website bángiầy online”

Hệ thống mua bán giầy là một Website cung cấp cho người sử dụng, nhàquản lý những chức năng cần thiết để tiến hành giao dịch, quản lý sự hoạt độngcũng như theo dõi tình hình phát triển cửa hàng của mình Đối với khách hàng,

hệ thống cho phép xem thông tin về sản phẩm của cửa hàng Sau khi đăng kýlàm thành viên, khách hàng có thể chọn sản phẩm trên website đưa vào giỏ hàng

và tiến hành giao dịch mua bán Sau khi chọn hàng xong khách hàng chuyển quaviệc thanh toán bằng một trong các hình thức thanh toán, đồng thời chọn địađiểm giao hàng Sau khi đã thực hiện xong, khách hàng nhấn xác nhận để hoàntất giao dịch

Trang 33

Đối với các nhân viên, là người sẽ tiếp nhận đơn hàng do người quản lýchuyển đến, thực hiện việc giao hàng và xác nhận việc giao hàng đã hoàntất.

Đối với quản lý sẽ xử lý các thống kê của cửa hàng

3.5.2 Các nhóm chức năng của hệ thống

Chức năng của hệ thống có thể chia làm các nhóm chức năng chính như sau:

1 Nhóm chức năng đăng ký, đăng nhập thành viên

2 Nhóm chức năng xem thông tin, bao gồm xem thông tin giỏ hàng, xem thông tin đơn hàng, xem thông tin sản phẩm, xem thông tin cá nhân

3 Nhóm chức năng quản lý thông tin, bao gồm quản lý thông tin cá nhân, quản

lý danh sách thành viên, quản lý danh mục sản phẩm,

4 Nhóm chức năng mua hàng, tiếp nhận và xử lý đơn hàng

3.5.3 Xác định các tác nhân

Dựa vào mô tả bài toán, ta có thể xác định được các tác nhân chính của hệthống như sau:

KHÁCH HÀNG : là người giao dịch với hệ thống thông qua các đơn đặt hàng,

khách hàng có thể chọn các loại sản phẩm, chọn địa điểm giao hàng

Khách hàng có thể đăng ký làm thành viên của hệ thống

NGƯỜI QUẢN LÝ: là người điều hành, quản lý và theo dõi mọi hoạt động của

3.6 Xác định các USE CASE , xây dựng biểu đồ USE CASE chi tiết

3.6.1 Xác định các Use case

- Tác nhân “Khách hàng” có các UC sau:

 Đăng ký làm thành viên

 Tìm kiếm

Trang 34

 Xem thông tin sản phẩm

 Xem thông tin giỏ hàng

 Chọn sản phẩm cần mua

 Thêm, bớt sản phẩm trong giỏ hàng

 Thực hiện việc mua hàng

 Thanh toán

- Tác nhân “Người quản lý” có các UC sau:

 Tiếp nhận đơn hàng

 Giao cho nhân viên thực hiện

 Quản lý danh sách thành viên

 Quản lý danh mục sản phẩm

 Quản lý banner

 Quản lý các Admin

 Quản lý các loại sản phẩm

- Tác nhân “Nhân viên” có các UC sau:

 Thực hiện việc xử lý đơn hàng

 Thống kê

Ngoài ra, các “Thành Viên” của hệ thống bao gồm các khách hàng đã đăng ký làm thành viên còn có các UC sau:

 Đăng nhập

 Xem thông tin cá nhân

 Sửa đổi thông tin cá nhân

Ngày đăng: 01/04/2024, 16:43

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN