Tải bản đầy đủ (.doc) (121 trang)

xây dựng website đấu giá trực tuyến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (11.04 MB, 121 trang )

Xây dựng website đấu giá trực tuyến
LỜI CẢM ƠN
Chúng em xin chân thành cám ơn các thầy cô hướng dẫn đã tận tình giúp
đỡ và truyền đạt kiến thức để chúng em có thể hoàn thành luận văn này.
Đặc biệt, chúng em xin gửi lời cảm ơn sâu sắc nhất đến thầy Trần Văn
Hùng – người đã giúp đỡ nhiệt tình trong quá trình thực hiện luận văn này. Chúng
em cũng xin gửi lời cảm ơn đến tất cả các thầy cô khoa Công nghệ thông tin đã
truyền đạt đầy đủ kiến thức để chúng em có thể hoàn thành bài luận văn này.
Cám ơn các bạn cùng khóa đã chia sẻ kinh nghiệm và kiến thức quý báu,
giúp chúng tôi có thể hoàn thành tốt công việc của mình.
Dù đã hoàn thành luận văn với tất cả nỗ lực của mình, nhưng chắc chắn
sản phẩm đạt được sẽ còn gặp nhiều lỗi không mong muốn, kính mong thầy cô tận
tình chỉ bảo. Một lần nữa xin gửi lời cảm ơn chân thành nhất đến mọi người.
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 1
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
TÓM TẮT ĐỀ TÀI
XÂY DỰNG WEBSITE ĐẤU GIÁ ONLINE
Yêu cầu của đề tài:
- Tìm hiểu về quy trình đấu giá trên website online
- Tìm hiểu về ngôn ngữ lập trình: javascript, xml, php
- Xây dựng cơ sở dữ liệu
- Xây dựng website có các chức năng sau:
Chức năng cơ bản:
Phần người dùng:
Xem các sản phẩm đấu giá.
Xem tin tức.
Đăng ký tài khoản.
Tham gia phiên đấu giá.
Tìm kiếm phiên đấu giá.
Quản lý tài khoản.


Quản lý phiên đấu giá: đăng một phiên mới, xóa, sửa một phiên do mình
đưa lên website.
Gửi thư, tin nhắn giữa các thành viên trong website.
Liên hệ hổ trợ.
Phần quản trị:
Có sự phân quyền chức năng giữa các thành viên quản trị
Quản trị cao cấp: toàn quyền cấu hình website, quản lý tài khoản thành
viên, quản lý tài khoản nhân viên, liên hệ chứng thực thông tin của thành viên khi
họ đang ký, báo cáo các thông tin thống kê của website.
Quản trị phiên đấu giá: theo dõi các phiên đấu giá do thành viên
website up lên, duyệt phiên đấu giá, liên hệ chứng thực sản phẩm do thành viên up
lên.
Quản trị kinh doanh: lập và thực hiện hợp đồng quảng cáo với các
doanh nghiệp cần đăng quảng cáo trên website, báo cáo các số liệu thống kê liên
quan đến quảng cáo.
Quản trị tin tức: Đăng các tin tức nổi bật liên quan đến trang web và
các tin khác trên mạng lên website.
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 2
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
Mục lục
Chöông 1: QUY TRÌNH ĐẤU GIÁ TRÊN WEBSITE 11
1 - Đấu giá là gì? 11
2 - Các hình thức đấu giá 11
2.1 - Đấu giá kiểu Anh 11
2.2 - Đấu giá kiểu Hà Lan 11
2.3 - Đấu giá kín theo giá thứ nhất 12
2.4 - Đấu giá kín theo giá thứ hai (đấu giá Vickrey) 12
2.5 - Đấu giá câm 12
2.6 - Đấu giá kiểu thầu (đấu thầu) 12

2.7 - Đấu giá nhượng quyền 12
2.8 - Đấu giá ra giá duy nhất 12
2.9 - Đấu giá mở 13
2.10 - Đấu giá trần 13
2.11 - Đấu giá tổ hợp 13
3 - Đấu giá trực tuyến 14
Chöông 2: Tìm hiểu các ngôn ngữ lập trình web 16
1 - TÌM HIỂU PHP 16
1.1 - Giới thiệu về PHP 16
1.2 - Giới thiệu về Mysql 16
2 - TÌM HIỂU XML 17
2.1 - XML là gì? 17
2.2 - Sơ lược về XML 18
3 - TÌM HIỂU JAVASCRIPT 21
3.1 - Giới thiệu javascript 21
3.2 - Công nghệ Ajax 22
Chöông 3: PHÂN TÍCH HỆ THỐNG ĐẤU GIÁ ONLINE 26
1 - MÔ TẢ NGHIỆP VỤ 26
1.1 - Giới thiệu sơ bộ về trang web 26
1.2 - Nghiệp vụ ban quản trị 26
2 - Sơ đồ Usecase 30
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 3
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
2.1 - Usecase tổng quát 30
2.2 - Đặc tả use case 31
3 - Sơ đồ lớp 50
3.1 - Phần khách hàng 50
3.2 - Phần quản trị 53
4 - Sơ đồ tuần tự 56

4.1 - Phần khách hàng 56
4.2 - Phần quản trị 60
5 - Sơ đồ cộng tác 68
5.1 - Phần khách hàng 68
5.2 - Phần quản trị 72
6 - Sơ đồ hoạt động 79
6.1 - Phần quản trị 79
6.2 - Phần khách hàng 80
7 - Sơ đồ thực thể kết hợp (ERD) 81
Chöông 4: THIẾT KẾ WEBSITE ĐẤU GIÁ 84
1 - Phần dành cho khách hàng 84
1.1 - Đăng ký 84
1.2 - Đăng nhập 86
1.3 - Quên mật khẩu 86
1.4 - Quản lý tài khoản 87
1.5 - Gửi mail, tin nhắn 88
1.6 - Các phiên đấu giá 89
1.7 - Giao diện chi tiết một phiên đấu giá 90
1.8 - Tìm kiếm phiên đấu giá 91
1.9 - Lập một phiên đấu giá mới 92
1.10 - Quản lý phiên đấu giá 93
1.11 - Đấu giá 93
2 - Phần dành cho quản trị 95
2.1 - Thống kê dạng biểu đồ 95
2.2 - Quản lý thông tin tài khoản 95
2.3 - Cấu hình website 96
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 4
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
2.4 - Quản trị tài khoản 97

2.5 - Quản trị phiên đấu giá 97
2.6 - Quản trị quảng cáo 98
2.7 - Quản trị tin tức 99
Chöông 5: ƯU KHUYẾT ĐIỂM CỦA ĐỀ TÀI 100
1 - Ưu điểm 100
2 - Khuyết điểm 100
Chöông 6: HƯỚNG PHÁT TRIỂN ĐỀ TÀI 101
Chöông 7: HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG 102
1 - Danh sách phần mềm sử dụng 102
2 - Cách cài đặt và cấu hình hệ thống 102
3 - Chạy thử (DEMO) 118
Chöông 8: TÀI LIỆU VÀ NGUỒN THAM KHẢO 121
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 5
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
Mục lục hình ảnh
Hình 2-1 So sánh ứng dụng web truyền thống (trái) với AJAX23
Hình 2-2 Sơ đồ miêu tả hoạt động của Ajax 24
Hình 3-3 Đăng nhập - Đăng xuất - Thay đổi thông tin tài khoản
31
Hình 3-4 Xem thống kê 32
Hình 3-5Quản trị quảng cáo 32
Hình 3-6 Quản trị hợp đồng quảng cáo 34
Hình 3-7Quản trị tin tức 36
Hình 3-8 Quản trị loại sản phẩm 38
Hình 3-9Quản trị phiên đấu giá 39
Hình 3-10 Quản trị khách hàng 41
Hình 3-11 Quản trị tài khoản quản trị 43
Hình 3-12 Đấu giá 45
Hình 3-13 Đăng ký tài khoản 46

Hình 3-14 Mail - Tin nhắn 47
Hình 3-15Quản trị phiên đấu giá của khách hàng 48
Hình 3-16 Đặt giá 56
Hình 3-17 Tự động đặt giá 57
Hình 3-18 Đăng nhập 57
Hình 3-19 Đăng ký 58
Hình 3-20 Thay đổi thông tin cá nhân 58
Hình 3-21 Xóa mail 59
Hình 3-22 Gửi mail 59
Hình 3-23 Liệt kê phiên đấu giá 60
Hình 3-24 Kích hoạt phiên đấu giá 60
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 6
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
Hình 3-25 Xóa phiên đấu giá 61
Hình 3-26 Thêm tài khoản khách hàng 61
Hình 3-27 Sửa tài khoản khách hàng 62
Hình 3-28 Thêm tài khoản quản trị 62
Hình 3-29 Sửa tài khoản quản trị 63
Hình 3-30 Xóa tài khoản quản trị 63
Hình 3-31 Thêm quảng cáo 64
Hình 3-32 Xóa quảng cáo 64
Hình 3-33 Sửa quảng cáo 65
Hình 3-34 Thêm hợp đồng quảng cáo 65
Hình 3-35 Sửa hợp đồng quảng cáo 66
Hình 3-36 Xóa hợp đồng quảng cáo 66
Hình 3-37Thêm tin tức 67
Hình 3-38 Xóa tin tức 67
Hình 3-39 Sửa tin tức 68
Hình 3-40 Đặt giá 68

Hình 3-41 Tự động đặt giá 69
Hình 3-42 Đăng nhập 69
Hình 3-43 Đăng ký 70
Hình 3-44 Thay đổi thông tin cá nhân 70
Hình 3-45 Xóa mail 71
Hình 3-46 Gửi mail 71
Hình 3-47 Liệt kê phiên đấu giá 72
Hình 3-48 Kích hoạt phiên đấu giá 72
Hình 3-49 Xóa phiên đấu giá 73
Hình 3-50 Thêm tài khoản khách hàng 73
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 7
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
Hình 3-51 Sửa tài khoản khách hàng 74
Hình 3-52 Thêm tài khoản quản trị 74
Hình 3-53 Sửa tài khoản quản trị 75
Hình 3-54 Xóa tài khoản quản trị 75
Hình 3-55 Thêm quảng cáo 76
Hình 3-56 Xóa quảng cáo 76
Hình 3-57 Sửa quảng cáo 77
Hình 3-58 Thêm hợp đồng quảng cáo 77
Hình 3-59 Sửa hợp đồng quảng cáo 78
Hình 3-60 Xóa hợp đồng quảng cáo 78
Hình 3-61 activity phần quản trị 79
Hình 3-62 activity phần khách hàng 80
Hình 4-63 Form đăng ký 84
Hình 4-64 Lựa chọn gói đặt giá 85
Hình 4-65 Hoàn tất đăng ký 85
Hình 4-66 Form đăng nhập 86
Hình 4-67 Form sau khi đăng nhập thành công 86

Hình 4-68 Thông báoxác nhận đã đổi mật khẩu 86
Hình 4-69 mail lấy lại mật khẩu 87
Hình 4-70 Giao diện thay đổi thông tin tài khoản 87
Hình 4-71 Liệt kê mail 88
Hình 4-72 giao diện gửi mail 88
Hình 4-73 Giao diện liệt kê các phiên đấu giá 89
Hình 4-74 Chi tiết một phiên đấu giá 90
Hình 4-75 Quá trình load nội dung của 1 phiên đấu giá 91
Hình 4-76 Giao diện tìm kiếm phiên đấu giá 91
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 8
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
Hình 4-77 giao diện một tạo một phiên đấu giá mới 92
Hình 4-78 Giao diện quản lý phiên đấu giá của bạn 93
Hình 4-79 thông tin phiên đấu giá rút gọn 93
Hình 4-80 Giao diện chi tiết một sản phẩm của phiên đấu giá 94
Hình 4-81 Biểu đồ thống kê khi login vào phần quản trị 95
Hình 4-82 Chức năng đổi mật khẩu của quản trị viên 95
Hình 4-83 thay đổi logo website 96
Hình 4-84 Thông báo của website 96
Hình 4-85 thay đổi footer của website 96
Hình 4-86 Thay đổi giao diện bằng file css 96
Hình 4-87 Giao diện quản trị tài khoản quản trị 97
Hình 4-88 Quản trị tài khoản khách hàng 97
Hình 4-89 Giao diện kích hoạt phiên đấu giá 98
Hình 4-90 Giao diện quản lý quảng cáo 98
Hình 4-91 Giao diện quản trị hợp đồng quảng cáo 99
Hình 4-92 Giao diện quản trị tin tức 99
Hình 7-93 Hình 1 103
Hình 7-94 Hình 2 104

Hình 7-95 Hình 3 105
Hình 7-96 Hình 4 106
Hình 7-97 Hình 5 107
Hình 7-98 Hình 6 107
Hình 7-99 Hình 7 108
Hình 7-100 Hình 8 109
Hình 7-101 Hình 9 110
Hình 7-102 Hình 10 111
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 9
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
Hình 7-103 Hình 11 112
Hình 7-104 Hình 12 113
Hình 7-105 Hình 13 114
Hình 7-106 chép soucre vào folder www 118
Hình 7-107 tạo database 119
Hình 7-108 import file sql 119
Hình 7-109 Giao diện trang chủ 120
Hình 7-110 trang đăng nhập quản trị 120
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 10
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
Chöông 1: QUY TRÌNH ĐẤU GIÁ TRÊN WEBSITE
1 - Đấu giá là gì?
Đấu giá là một quá trình mua và bán bằng cách đưa ra món hàng cần đấu
giá, ra giá và sau đó bán món hàng cho người ra giá cao nhất. Về phương diện kinh
tế, một cuộc đấu giá là phương pháp xác định giá trị của món hàng chưa biết giá
hoặc giá trị thường thay đổi. Trong một số trường hợp, có thể tồn tại một mức giá
tối thiểu hay còn gọi là giá sàn, nếu sự ra giá không đạt đến được giá sàn thì sản
phẩm đó sẽ không được bán (nhưng người đưa ra món hàng ra đấu giá vẫn phải trả

phí cho nơi phụ trách việc bán đấu giá). Trong ngữ cảnh của cuộc đấu giá, một từ
vựng tiếng Anh thường được dùng là bid hay auction, nghĩa là “giá đề nghị”. Đấu
giá có thể áp dụng cho nhiều loại mặt hàng khác nhau.
2 - Các hình thức đấu giá
2.1 - Đấu giá kiểu Anh
Đây là hình thức được nhiều người biết đến nhất. Người tham gia trả giá
công khai với nhau, giá đưa ra sau bao giờ cũng cao hơn giá đưa ra trước đó. Cuộc
đấu giá kết thúc khi không ai đưa ra giá cao hơn hoặc khi đạt tới giá trần, khi đó
người ra giá cao nhất sẽ được mua món hàng đó với giá mình đã trả. Người bán có
thể đặt ra giá sàn, nếu người điều khiển không thể nâng giá cao hơn mức sàn thì
việc đấu giá có thể thất bại
2.2 - Đấu giá kiểu Hà Lan
Trong một sàn đấu giá kiểu Hà Lan truyền thống, người điều khiển ban
đầu sẽ hô giá cao, rồi thấp dần cho tới khi có người mua chấp nhận mức giá đó hoặc
chạm đến mức sàn dự định bán ra. Người mua đó sẽ mua món hàng với giá đưa ra
cuối cùng. Hình thức này đặc biệt hiệu quả khi cần đấu giá nhanh món hàng nào đó,
vì có những cuộc mua bán không cần đến lần trả giá thứ hai, một ví dụ tiêu biểu là
việc bán hoa tulip. Kiểu đấu giá này còn được sử dụng để mô tả đấu giá trực tuyến
khi một số món hàng đồng nhất được bán đồng thời cho một số người cùng ra giá
cao nhất.
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 11
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
2.3 - Đấu giá kín theo giá thứ nhất
Tất cả mọi người cùng đặt giá đồng thời, không ai biết giá của ai, người
ra giá cao nhất là người được mua món hàng.
2.4 - Đấu giá kín theo giá thứ hai (đấu giá Vickrey)
Tương tự như đấu giá kín theo giá thứ nhất, tuy nhiên người thắng chỉ
phải mua món hàng với mức giá cao thứ hai chứ không phải giá cao nhất mình đặt
ra.

2.5 - Đấu giá câm
Đây là một biến thể của đấu giá kín, thường dùng trong các cuộc đấu giá
từ thiện, liên quan đến việc mua một tập các món hàng giống nhau, người tham gia
sẽ đặt giá vào một tờ giấy đặt kế món hàng, họ có thể được biết hoặc không được
biết có bao nhiêu người tham gia và giá mà họ đưa ra. Người trả cao nhất sẽ mua
món hàng với giá mình đã đặt.
2.6 - Đấu giá kiểu thầu (đấu thầu)
Hình thức này tráo đổi vai trò người bán và người mua. Người mua đưa
ra bản yêu cầu báo giá cho một loại hàng nào đó và các nhà cung cấp sẽ đưa ra giá
thấp dần với mong muốn dành lấy gói thầu đó. Vào cuối buổi đấu giá, người ra gái
thấp nhất sẽ thắng cuộc.
2.7 - Đấu giá nhượng quyền
Đây là hình thứ đấu giá dài vô hạn định, dành cho những sản phẩm có
thể được tái bản (bản thu âm, phần mềm, công thức làm thuốc), người đấu giá đặt
công khai giá lớn nhất của họ (có thể điều chỉnh hoặc rút lại), người bán có thể xem
xét kết thúc cuộc đấu giá bất cứ lúc nào khi chọn được mức giá vừa ý. Những người
thắng cuộc là những người đặt giá bằng hoặc cao hơn giá được chọn, và sẽ nhận
được phiên bản của sản phẩm.
2.8 - Đấu giá ra giá duy nhất
Trong hình thức này, người đấu giá sẽ đưa ra giá không rõ ràng, và được
cung cấp một phạm vi giá mà họ có thể đặt. Một mức giá duy nhất có thể cao nhất
hoặc thấp nhất từ các mức giá được ra giá sẽ thắng cuộc. Ví dụ, nếu một cuộc đấu
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 12
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
giá quy định mức giá là 10, năm giá cao nhất là 10, 10, 9, 8, 8 thì 9 sẽ là giá thắng
cuộc vì là người ra giá duy nhất đạt cao nhất. Hình thức này phổ biến trong các
cuộc đấu giá trực tuyến.
2.9 - Đấu giá mở
Đây là hình thức được sử dụng trong thị trường chứng khoán và trao đổi

hàng hóa. Việc mua bán diễn ra trên sàn giao dịch và người giao dịch đưa ra giá
bằng lời ngay tức thì. Những giao dịch có thể đồng thời diễn ra ở nơi khác trong sàn
mua bán. Hình thức này dần được thay thế bởi hình thức thương mại điện tư.
2.10 - Đấu giá trần
Hình thức đấu giá này có gái bán ra định trước, người tham gia có thể
kết thúc cuộc đấu giá bằng cách đơn giãn chấp nhận mức giá này. Mức giá này do
người bán định ra. Người đấu giá có thề chọn để ra giá hoặc sử dụng luôn mức giá
trần. Nếu không có người chọn giá trần thì cuộc đấu giá sẽ kết thúc với người trả
mức cao nhất.
2.11 - Đấu giá tổ hợp
Trong một số trường hợp, sự định giá của người mua là một tập món
hàng với số lượng và chủng loại khác nhau (gọi là tổ hợp). Ví dụ, nếu bánh xe đạp
và khung xe được bán rời ra trong một cuộc đấu giá, thì đối với người ra giá một tổ
hợp bao gồm 1 bánh xe hoặc 1 khung xe chẳng có giá trị gì cả, nhưng 2 bánh xe và
1 khung xe thì lại đáng giá đến $200. Nếu bị buộc phải mua từng phần trong những
cuộc đấu giá khác nhau, người ra giá có thể gặp trường hợp oái ăm: thắng được một
số món được rao bán trước nhưng lạ thua khi đấu những món được rao bán sau, mặt
khác, thua ngay trong cuộc đấu giá đầu tiên thì chắc chắn anh ta sẽ không có được
tổ hợp mong muốn. Tình thế này có thể được giải quyết bằng cách bán tất cả các
món đồng thời và cho phép người mua ra giá cho một tổ hợp các món hàng. Sự ra
giá theo tổ hợp như vậy sẽ đề nghị một giá để trả cho tất cả các món trong tổ hợp,
nếu thắng thì có được tổ hợp, ngược lại sẽ không phải mua bất cứ món gì trong tổ
hợp
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 13
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
3 - Đấu giá trực tuyến
Đấu giá trực tuyến là cách cho phép người tham gia đấu giá các sản
phẩm hoặc các dịch vụ thông qua internet
Khi nói đến đấu giá trực tuyến là chúng ta nghĩ ngay đến eBay, website

đấu giá trực tuyến lớn nhất trên thế giới hiện nay. Giống như hầu hết các công ty
đấu giá, eBay không trực tiếp bán hàng của chính mình mà chỉ giúp cho các thành
viên liệt kê và trưng bày sản phẩm của họ, đấu giá các sản phẩm và thanh toán
chúng. Nó hoạt động giống như một nơi họp chợ cho các thành viên hoặc các doanh
nghiệp sử dụng để đấu giá các sản phẩm và dịch vụ. Có một vài loại hình thức đấu
giá trên mạng đang hiện hữu như đấu giá kiểu Anh (đã nêu ở trên), đấu giá kiểu Hà
Lan (đã nêu ở trên), hầu hết các sàn đấu giá trực tuyến điều sử dụng đấu giá kiểu
Anh
*Ưu điểm của mô hình thương mại này là:
Không ràng buộc thời gian. Việc đặt giá có thể thực hiện bất kỳ lúc nào.
Các sản phẩm được liệt kê trong một vài ngày (thường từ 1 đến 10 ngày, tùy theo
người bán) để người mua có thời gian tìm kiếm, quyết định và đặt giá. Giá trị của
món hàng sẽ được nâng lên theo số lượng người tham gia đấu giá.
Không ràng buộc địa lý: những người bán hàng và những người
md9a61u giá có thể tham gia đấu giá từ bất kỳ nơi nào có truy cập internet. Điều
này làm cuộc đấu giá thêm gần gũi và giãm chi phí tham dự một cuộc đấu giá. Điều
này đồng thời làm tăng số lượng các sản phẩm (có càng nhiều người bán hàng) và
số lượng đặt giá (có càng nhiều người đặt giá). Những món hàng không cần phải
đưa đến sàn đấu giá mà còn giảm được chi phí, giảm được giá khởi điểm được chấp
nhận của người bán.
Sức mạnh tương tác xã hội: Tương tác xã hội mà liên quan đến quá trình
đấu giá thì giống như việc đánh bạc. Những người đấu giá chờ đợi trong hy vọng là
họ sẽ thắng (eBay gọi những người đặt giá thành công là những người chiến thắng).
Cũng giống như sự ham mê cờ bạc, nhiề người tham gia đặt giá chủ yếu để “chơi
trò chơi” chứ không muốn dành được món hàng. Và điều này tạo ra một sự phân
chia lớn các khách hàng tiềm năng của eBay.
Số người đấu giá lớn: bởi vì chi phí thấp, số lượng hàng hóa và dịch vụ
đa dạng, dễ dàng tham gia quá trình đấu giá
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 14
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc

Xây dựng website đấu giá trực tuyến
Số lượng người bán hàng lớn: Bởi vì có nhiều người tham gia đặt giá, có
thể đạt được giá cao, giảm chi phí bán hàng, dễ buôn bán.
Mạng lưới kinh doanh: số lượng người tham gia đấu giá sẽ kích thích
nhiều người bán và ngược lại. Càng có nhiều hoạt động thì hệ thống càng lớn mạnh,
và mô hình kinh doanh càng trở nên có giá trị cap cho những người tham gia.
*Nhược điểm của mô hình thương mại này là:
Vì nhiều người tham gia, trao đổi, giao dịch với nhau ở mọi nơi nên sẽ có hiện
tượng một vài người lợi dụng lừa đảo, chiếm đoạt tài sản, bán hàng không đảm bảo
chất lượng……
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 15
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
Chöông 2: Tìm hiểu các ngôn ngữ lập trình web
1 - TÌM HIỂU PHP
1.1 - Giới thiệu về PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ
lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng
dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích
hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các
ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian
xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã
nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.
Đoạn mã sau minh họa giúp cách viết PHP lồng vào các trang HTML dễ
dàng như thế nào:
<html>
<head>
<title>Mã mẫu</title>
</head>
<body>

<?php
echo "Chào thế giới PHP!";
?>
</body>
</html>
Thẻ <?php và thẻ ?> sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mã
PHP qua đó máy chủ biết để xử lý và dịch mã cho đúng. Đây là một điểm khá tiện
lợi của PHP giúp cho việc viết mã PHP trở nên khá trực quan và dễ dàng trong việc
xây dựng phần giao diện ứng dụng HTTP.
1.2 - Giới thiệu về Mysql
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới
và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 16
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt
động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất
mạnh.Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có
truy cập CSDL trên internet. MySQL miễn phí hoàn toàn cho nên bạn có thể tải về
MySQL từ trang chủ. Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên
bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix,
FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ
liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làm
nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
2 - TÌM HIỂU XML
2.1 - XML là gì?
XML cung cấp một phương tiện dùng văn bản (text) để mô tả thông tin
và áp dụng một cấu trúc kiểu cây cho thông tin đó. Tại mức căn bản, mọi thông tin

đều thể hiện dưới dạng text, chen giữa là các thẻ đánh dấu (markup) với nhiệm vụ
ký hiệu sự phân chia thông tin thành một cấu trúc có thứ bậc của các dữ liệu ký tự,
các phần tử dùng để chứa dữ liệu, và các thuộc tính của các phần tử đó. Về mặt đó,
XML tương tự với các biểu thức S (S-expression) của ngôn ngữ lập trình LISP ở
chỗ chúng đều mô tả các cấu trúc cây mà trong đó mỗi nút có thể có một danh sách
tính chất của riêng mình.
Đơn vị cơ sở của XML là các ký tự theo định nghĩa của Universal
Character Set (Bộ ký tự toàn cầu). Các ký tự được kết hợp theo các tổ hợp chuỗi
hợp lệ để tạo thành một tài liệu XML. Tài liệu này gồm một hoặc nhiều thực thể,
mỗi thực thể thường là một phần nào đó của các ký tự thuộc tài liệu, được mã hóa
dưới dạng một chuỗi các bit và lưu trữ trong một tệp văn bản (text file).
Các tệp XML có thể dùng cho nhiều loại dữ liệu đa phương tiện. RFC3023 định
nghĩa các loại "application/xml" và "text/xml", với ý rằng dữ liệu được biểu diễn
bằng XML mà không nói gì đến ngữ nghĩa của dữ liệu.
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 17
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
2.2 - Sơ lược về XML
Cú pháp XML cơ bản cho một phần tử là
<tên thuộc_tính="giá trị">nội dung</tên>
Dưới đây là ví dụ về một công thức nấu ăn viết bằng XML:
<?xml version="1.0" encoding="UTF-8"?>
<công_thức_nấu_ăn tên="bánh mì" thời_gian_chuẩn_bị="5 phút"
thời_gian_nấu="3 tiếng">
<title>Bánh mì cơ bản</title>
<nguyên_liệu lượng="3" đơn_vị="ca">Bột mì</nguyên_liệu>
<nguyên_liệu lượng="7" đơn_vị="gram">Men</nguyên_liệu>
<nguyên_liệu lượng="1.5" đơn_vị="ca" trạng_thái="ấm">Nước</nguyên_liệu>
<nguyên_liệu lượng="1" đơn_vị="thìa cà phê">Muối</nguyên_liệu>
<chỉ_dẫn>

<bước>Trộn tất cả các nguyên liệu với nhau và nhào kĩ</bước>
<bước>Phủ một mảnh vải, ủ một tiếng đồng hồ trong phòng ấm.</bước>
<bước>Nhào lại, đổ vào khuôn, cho vào lò nướng.</bước>
</chỉ_dẫn>
</công_thức_nấu_ăn>
Dòng đầu tiên là Khai báo XML (XML declaration): đó là một dòng
không bắt buộc, với nhiệm vụ thông báo phiên bản XML đang được sử dụng
(thường là phiên bản 1.0), và còn có thể chứa thông tin về mã hóa ký tự và các phụ
thuộc bên ngoài.
Phần còn lại của tài liệu này chứa các phần tử lồng nhau, một số phần tử
trong đó có các thuộc tính và nội dung. Một phần tử thường bao gồm hai thẻ (tag),
một thẻ bắt đầu và một thẻ kết thúc, có thể bao quanh văn bản và các phần tử khác.
Thẻ bắt đầu bao gồm một cái tên đặt trong một cặp ngoặc nhọn, như "<bước>"; thẻ
kết thúc bao gồm chính cái tên đó đặt trong một cặp ngoặc nhọn, với một dấu gạch
chéo đứng trước, như "</bước>". Nội dung của phần tử là tất cả những gì nằm giữa
thẻ bắt đầu và thẻ kết thúc, bao gồm văn bản và các phần tử (con) khác. Dưới đây là
một phần tử XML hoàn chỉnh, với thẻ bắt đầu, nội dung văn bản, và thẻ kết thúc:
<bước>Nhào lại, đổ vào khuôn, cho vào lò nướng.</bước>
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 18
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
Bên cạnh nội dung, một phần tử có thể chứa các thuộc tính — các cặp
tên - giá trị được đặt trong thẻ bắt đầu, ngay sau tên phần tử. Giá trị của thuộc tính
phải được đặt trong cặp nháy đơn hoặc nháy kép, mỗi tên thuộc tính chỉ được xuất
hiện một lần trong mỗi phần tử.
<nguyên_liệu lượng="3" đơn_vị="ca">Bột mì</nguyên_liệu>
Trong ví dụ này, phần tử nguyên_liệu có hai thuộc tính: lượng với giá trị
"3", và đơn vị với giá trị "ca". Trong cả hai trường hợp, cũng như tên và nội dung
của các phần tử, tại cấp độ đánh dấu, tên và giá trị của các thuộc tính cũng chỉ là dữ
liệu text — các giá trị "3" và "ca" không phải một số lượng và một đơn vị đo lường

mà chỉ là các chuỗi ký tự mà tác giả tài liệu có thể dùng để biểu diễn những thứ đó.
Ngoài văn bản, các phần tử còn có thể chứa các phần tử khác:
<chỉ_dẫn>
<bước>Trộn tất cả các nguyên liệu với nhau và nhào kĩ</bước>
<bước>Phủ một mảnh vải, ủ một tiếng đồng hồ trong phòng ấm.</bước>
<bước>Nhào lại, đổ vào khuôn, cho vào lò nướng.</bước>
</chỉ_dẫn>
Trong đó, phần tử chỉ_dẫn chứa ba phần tử bước. XML đòi hỏi rằng các
phần tử phải được lồng nhau một cách đúng đắn — các phần tử không được có
phần xen vào nhau. Ví dụ, đoạn dưới đây không phải XML định dạng đúng (well-
formed XML) vì các phần từ em và strong xen vào nhau:
<! SAI! ĐỊNH DẠNG KHÔNG ĐÚNG! >
<p>Normal <em>emphasized <strong>strong emphasized</em>
strong</strong></p>
Mỗi tài liệu XML phải có đúng một phần tử gốc tại bậc trên cùng (còn
gọi là phần tử văn bản), do đó đoạn sau cũng sẽ là một tài liệu XML định dạng sai:
<?xml version="1.0" encoding="UTF-8"?>
<! SAI! ĐỊNH DẠNG KHÔNG ĐÚNG! >
<đồ vật>Đồ vật thứ nhất</đồ vật>
<đồ vật>Đồ vật thứ hai</đồ vật>
XML cung cấp cú pháp đặc biệt để biểu diễn một phần tử với nội dung
rỗng. Thay vì viết một thẻ bắt đầu và một thẻ kết thúc ngay sau đó, tài liệu có thể
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 19
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
chứa thẻ phần tử rỗng mà trong đó dấu gạch chéo đứng ngay sau tên phần tử. Hai ví
dụ sau là tương đương về chức năng:
<foo></foo>
</div>
:<source lang="xml" enclose="div">

<foo />
XML cung cấp hai phương pháp biểu diễn các ký tự đặc biệt: các tham
chiếu thực thể (entity reference) và các tham chiếu ký tự số (numeric character
reference).
Trong XML, một thực thể (entity) là một thân dữ liệu được đặt tên với
dữ liệu thường là text, chẳng hạn một ký tự đặc biệt.
Một tham chiếu thực thể là một ký hiệu đại diện cho thực thể đó. Nó bao
gồm tên của thực thể với dấu ("&") đứng trước và một dấu chấm phảy (";") đứng
sau. XML có năm thực thể đã được khai báo trước:
&amp; (&)
&lt; (<)
&gt; (>)
&apos; (')
&quot; (")
Dưới đây là một ví dụ sử dụng một thực thể XML khai báo trước để biểu
diễn dấu & trong tên "AT&T":
<tên-công-ty>AT&amp;T</tên-công-ty>
Nếu cần khai báo thêm các thực thể khác, việc đó được thực hiện tại
DTD của tài liệu. Sau đây là một ví dụ cơ bản về khai báo thực thể tại một DTD
nhỏ nội bộ. Các thực thể được khai báo có thể mô tả các ký tự đơn hay các đoạn văn
bản, và có thể tham chiếu lẫn nhau.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE example [
<!ENTITY copy "©">
<!ENTITY copyright-notice "Copyright © 2006, XYZ Enterprises">
]>
<root>
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 20
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến

&copyright-notice;
</root>
Khi xem tại một trình duyệt thích hợp, tài liệu XML trên sẽ hiện ra như
sau:
<root> Copyright © 2006, XYZ Enterprises </root>
Các tham chiếu ký tự số trông giống như các thực thể. Nhưng thay cho
một cái tên, chúng gồm một ký tự "#" và theo sau là một con số. Con số (theo hệ
thập phân hoặc hệ cơ số 16 với tiền tố "x") đại diện cho một mã hiệu Unicode
(Unicode code point), và thường được dùng để đại diện cho các ký tự không dễ gõ
trên máy tính, chẳng hạn một chữ cái Ả-rập trong một tài liệu được soạn trên một
máy tính châu Âu. Dấu & trong ví dụ "AT&T" có thể được biểu diễn như sau (số 38
thập phân và 26 trong hệ cơ số 16 đều đại diện cho giá trị Unicode của dấu &):
<tên-công-ty>AT&#38;T</tên-công-ty>
<tên-công-ty>AT&#x26;T</tên-công-ty>
Còn có nhiều quy tắc khác cần thiết cho việc viết các tài liệu XML định
dạng đúng, chẳng hạn một tên XML có thể chứa các ký tự nào, nhưng phần giới
thiệu ngắn này chỉ cung cấp các kiến thức căn bản để đọc và hiểu được nhiều tài
liệu XML.
3 - TÌM HIỂU JAVASCRIPT
3.1 - Giới thiệu javascript
JavaScript, theo phiên bản hiện hành, là một ngôn ngữ lập trình kịch bản
dựa trên đối tượng được phát triển từ các ý niệm nguyên mẫu. Ngôn ngữ này được
dùng rộng rãi cho các trang web, nhưng cũng được dùng để tạo khả năng viết script
sử dụng các đối tượng nằm sẵn trong các ứng dụng. Nó vốn được phát triển bởi
Brendan Eich tại Hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó
đổi tên thành LiveScript, và cuối cùng thành JavaScript. Giống Java, JavaScript có
cú pháp tương tự C, nhưng nó gần với Self hơn Java. .js là phần mở rộng thường
được dùng cho tập tin mã nguồn JavaScript.
Trên trình duyệt, rất nhiều trang web sử dụng JavaScript để thiết kế trang web động
và một số hiệu ứng hình ảnh thông qua DOM. JavaScript được dùng để thực hiện

một số tác vụ không thể thực hiện được với chỉ HTML như kiểm tra thông tin nhập
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 21
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
vào, tự động thay đổi hình ảnh, Ở Việt Nam, JavaScript còn được ứng dụng để
làm bộ gõ tiếng Việt giống như bộ gõ hiện đang sử dụng trên trang Wikipedia tiếng
Việt. Tuy nhiên, mỗi trình duyệt áp dụng JavaScript khác nhau và không tuân theo
chuẩn W3C DOM, do đó trong rất nhiều trường hợp lập trình viên phải viết nhiều
phiên bản của cùng một đoạn mã nguồn để có thể hoạt động trên nhiều trình duyệt.
Một số công nghệ nổi bật dòng JavaScript để tương tác với DOM bao gồm
DHTML, Ajax và SPA
3.2 - Công nghệ Ajax
Ajax là gì?
Hiện nay kỹ thuật Ajax được ứng dụng rất nhiều trên các trang web
nhằm tăng tính thân thiện và tiện lợi hơn cho trang web. Khái niệm này đang dần
quen thuộc với những người lập trình web. Nếu bạn quan tâm tới kỷ thuật này và
đang có ý định học thì nên đọc bài viết này để xem bạn có quyết định sáng suốt
không nhé.
AJAX là thuật ngữ viết tắt của Asynchronous Javascript and XML ( JS
và XML không đồng bộ). AJAX có thể đọc là "trao quyền cho javascript" và thông
qua js để cung cấp một công nghệ phía client-script để gọi ngầm một lệnh
background để phía server thực hiện và nhận thông tin trả về, update thông tin của
trang nhanh mà không cần phải load lại cả trang, rất mất thời gian load lại những
cái không cần update.
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 22
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
Hình 2-1 So sánh ứng dụng web truyền thống (trái) với AJAX
Ví dụ: Để kiểm tra nickname đã tồn tại trong cơ sở dữ liệu hay chưa thì
khi thành viên vừa nhập xong nick name, thông tin trên form lập tức javascript nắm

thông tin rồi thực hiện gọi một hàm bằng PHP bên phía server để kiểm tra thông tin
sau đó trả kết quả html về cho javascript xuất ra cho người dùng biết tính hợp lệ của
nickname, lúc đó ngươid ùng có thể thay đổi ngay chớ không cần đợi submit rồi
kiểm tra và nhập lại như dùng PHP truyền thống.
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 23
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
Hình 2-2 Sơ đồ miêu tả hoạt động của Ajax
Cũng như bất kỳ công nghệ khác, AJAX có thể bị sử dụng quá nhiều
trong một website, vì họ chỉ thấy những ưu điểm mà AJAX mang lại chớ không
quan tâm đến những khuyết điểm của AJAX, để tránh tình trạng trên, có thể liệt kê
một số đặc điểm của AJAX như sau:
- Ưu điểm:
* Nó giúp việc thiết kế web đa dạng hơn và tăng tính tương tác của
website với người dùng
* Nó sử dụng các công nghệ đã có sẵn nên dễ học và sử dụng
* Nhờ tính phổ biến của nó, đã khuyến khích việc phát triển các
khuôn mẫu mà sẽ giúp lập trình viên tránh khỏi các vết xe đổ trước.
* Được hỗ trợ trong các trình duyệt phổ biến hiện nay
- Hạn chế
* Bạn không thể bookmark nó vào favourite trên trinh duyệt hay gởi
link đến cho bạn bè, vì tất cả quá trình nó thực hiện ngầm và không hiển thị trên
address
* Không thể hiện thị nội dung trên các trang tìm kiếm vì các trang tìm
kiếm hiện nay vẫn chưa hỗ trợ tìm vì rất khó tìm và gần như không thể tìm được.
* Không thể sử dụng nút back vì back cũng là chính nó.
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 24
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc
Xây dựng website đấu giá trực tuyến
* Với một số trình duyệt, do nhu cầu bảo mật, sẽ tắt chức năng thực

hiện javascript nên ajax không thể chạy, hay trong một vài host, không hỗ trợ vào
sâu cấu hình server nên hay bị lỗi "Access denied".
Nhưng với những điểm hạn chế nói trên thì AJAX vẫn đang được các
lập trình viên sử dụng rộng rãi và đang nghiên cứu để cải thiện nó, ví dụ như vừa
update thông tin trên web, vừa thay đổi trên thanh address để có thể sử dụng một số
chức năng liên quan tới địa chỉ tuyệt đối này.
Giáo viên hướng dẫn: Thầy Trần Văn Hùng Trang 25
Sinh viên: Trần Hoàng Gia – Trần Thái Khắc

×