Báo cáo đề tài xây dựng website nghe nhạc trực tuyến php
Trang 1MỤC LỤC
DANH MỤC HÌNH ẢNH 3
CHƯƠNG 1 TỔNG QUAN VỀ PHP VÀ MYSQL 4
1.1 Tìm hiểu về PHP 4
1.1.1 Giới thiệu về PHP 4
1.1.2 Tại sao phải sử dụng PHP 4
1.1.3 Cú pháp PHP 5
1.1.4 Các kiểu dữ liệu PHP 5
1.1.5 Biến trong PHP 6
1.1.6 Lập trình hướng đối tượng (OOP) 6
1.2 Tìm hiểu về MYSQL 8
1.2.1 Giới thiệu về MySQL 8
1.2.2 Đặc điểm của MYSQL 9
1.2.3 Tại sao sử dụng MYSQL 9
1.2.4 Kết hợp PHP và MYSQL trong ứng dụng website 9
1.3 Cài đặt PHP, Apache, MYSQL 10
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 11
WEBSITE NGHE NHẠC TRỰC TUYẾN 11
2.1 Giới thiệu đề tài 11
2.1.1 Giới thiệu Website nghe nhạc trực truyến 11
2.1.2 Mục tiêu và yêu cầu xây dựng hệ thống 11
2.2 Phân tích thiết kế hệ thống 11
2.2.1 Biểu đồ phân cấp chức năng (BFD) 11
2.2.2 Biểu đồ luồng dữ liệu 13
2.3 Chi tiết các bảng dữ liệu 19
2.3.1 Bảng Album (album) 19
2.3.2 Bảng Bài hát (bai_hat) 20
2.3.3 Bảng ca sĩ (ca_si) 20
2.3.4 Bảng Thể loại (the_loai) 21
2.3.5 Bảng người dùng (nguoi_dung) 21
2.3.6 Bảng quốc gia (quoc_gia) 21
Trang 22.3.7 Bảng nhạc sĩ (nhac_si) 22
3.1 Trang chủ 23
3.2 Trang nghe nhạc 24
3.3 Trang đăng nhập thành viên 24
3.4 Trang đăng kí thành viên 25
3.5 Trang tìm kiếm bài hát 25
3.6 Trang Upload 26
3.7 Trang quản trị hệ thống website 26
3.7.1 Trang đăng nhập quản trị hệ thống 26
3.7.2 Trang Quản trị hệ thống 27
3.7.4 Quản lý Album 28
3.7.5 Quản lý thể loại 29
3.7.6 Quản lý người dùng 29
3.7.7 Quản lý bài hát 30
KẾT LUẬN 31
TÀI LIỆU THAM KHẢO 32
2
Trang 3DANH MỤC HÌNH ẢNH
Hình 1.1 Cài đặt PHP, Apache, MYSQL 10
Hình 2.1 Biểu đồ phân cấp chức năng 12
Hình 2.2 Biểu đồ luồng dữ liệu mức khung cảnh 14
Hình 2.3 Biểu đồ luồng dữ liệu mức đỉnh 16
Hình 2.4 Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý hệ thống .17
Hình 2.5 Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý thành viên 17
Hình 2.6 Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý tìm kiếm 18
Hình 2.7 Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý nghe nhạc 19
Hình 2.8 Bảng Album (album) 19
Hình 2.9 Bảng Bài hát (bai_hat) 20
Hình 2.10 Bảng ca sĩ (ca_si) 20
Hình 2.11 Bảng Thể loại (the_loai) 21
Hình 2.12 Bảng người dùng (nguoi_dung) 21
Hình 2.13 Bảng quốc gia (quoc_gia) 21
Hình 2.14 Bảng nhạc sĩ (nhac_si) 22
Hình 3.1 Trang Chủ 23
Hình 3.2 Trang Nghe nhạc 24
Hình 3.3 Trang đăng nhập thành viên 24
Hình 3.4 Trang đăng kí thành viên 25
Hình 3.5 Trang tìm kiếm bài hát 25
Hình 3.6 Trang upload 26
Hình 3.7 Đăng nhập Quản trị hệ thống 27
Trang 4Hình 3.8 Trang quản trị hệ thống 27
Hình 3.10 Quản lý Album 28
Hình 3.11 Quản lý thể loại 29
Hình 3.12 Quản lý người dùng 29
CHƯƠNG 1 TỔNG QUAN VỀ PHP VÀ MYSQL 1.1 Tìm hiểu về PHP
1.1.1 Giới thiệu về PHP
PHP (Hypertext Preprocessor) là 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 Mã PHP có thể thực thi trên Webserver để tạo ra mã HTML và xuất ra trình duyệt web theo yêu cầu của người sử dụng Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, 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 ngôn ngữ lập trình web phổ biến nhất thế giới
Ngôn ngữ PHP ra đời năm 1994 Rasmus Lerdorf sau đó được phát triển bởi nhiều người trải qua nhiều phiên bản Phiên bản hiện tại là PHP 5.0 đã được công bố 07/2004
1.1.2 Tại sao phải sử dụng PHP
Có nhiều lý do khiến cho việc sử dụng ngôn ngữ này chiếm ưu thế, sau đây là một số lý do cơ bản:
Miễn phí, download dễ dàng từ Internet
Ngôn ngữ rất dễ học, dễ viết
Mã nguồn mở(open sorce code)
Mã nguồn không phải sửa lại nhiều khi viết chạy cho các hệ điều hành từ Windows,Linnux, Unix
4
Trang 5Rất đơn giản trong việc kết nối với nhiều nguồn DBMS.ví dụ như : MySQL, Microsoft SQL Server 2000, Oracle, PostgreSQL, Adabas, dBase, Empress, FilePro, Informix, InterBase, mSQL, Solid, Sybase, Velocis và nhiều
hệ thống CSDL thuộc Hệ Điều Hành Unix (Unix dbm) cùng bất cứ DBMS nào
có sự hổ trợ cơ chế ODBC (Open Database Connectivity) ví dụ như DB2 của IBM
1.1.4 Các kiểu dữ liệu PHP
Php hỗ trợ 5 kiểu dữ liệu như sau:
+Integer: sử dụng cho giá trị có kiểu dữ liệu là số nguyên
Trang 6+ Double: sử dụng cho giá trị có kiểu dữ liệu là số thực
+String: sử dụng cho các giá trị có kiểu dữ liệu là chuỗi và ký tự
+Array: sử dụng cho các giá trị có kiểu dữ liệu là mảng
+ Object: sử dụng cho các giá trị có kiểu dữ liệu là đối tượng của lớp
1.1.5 Biến trong PHP
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
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
1.1.6 Lập trình hướng đối tượng (OOP)
a Khái niệm
Lập trình hướng đối tượng (gọi tắt là OOP, từ chữ Anh ngữ oriented programming), hay còn gọi là lập trình định hướng đối tượng, là kĩthuật lập trình hỗ trợ công nghệ đối tượng OOP giúp tăng năng suất, đơn giảnhóa độ phức tạp khi bảo trì cũng như mở rộng phần mềm bằng cách cho phéplập trình viên tập trung vào các đối tượng phần mềm ở bậc cao hơn Đây làkhái niệm và là một nỗ lực nhằm giảm nhẹ các thao tác viết mã cho người lậptrình, cho phép họ tạo ra các ứng dụng mà các yếu tố bên ngoài có thể tươngtác với các chương trình đó giống như là tương tác với các đối tượng vật lý
object-6
Trang 7b Các tính chất cơ bản
Object: Các dữ liệu và chỉ thị được kết hợp vào một đơn vị đầy đủ tạonên một đối tượng Đơn vị này tương đương với một chương trình con và vì thếcác đối tượng sẽ được chia thành hai bộ phận chính: phần các phương thức(method) và phần các thuộc tính (attribute) Trong thực tế, các phương thức củađối tượng là các hàm và các thuộc tính của nó là các biến, các tham số hayhằng nội tại của một đối tượng (hay nói cách khác tập hợp các dữ liệu nội tạitạo thành thuộc tính của đối tượng) Các phương thức là phương tiện để sửdụng một đối tượng trong khi các thuộc tính sẽ mô tả đối tượng có những tínhchất gì
Các phương thức và các thuộc tính thường gắn chặt với thực tế các đặctính và sử dụng của một đối tượng
Các đối tượng thường được trừu tượng hóa qua việc định nghĩa của cáclớp (class).Tập hợp các giá trị hiện có của các thuộc tính tạo nên trạng thái củamột đối tượng
Mỗi phương thức hay mỗi dữ liệu nội tại cùng với các tính chất đượcđịnh nghĩa (bởi người lập trình) được xem là một đặc tính riêng của đối tượng.Nếu không có gì lầm lẫn thì tập hợp các đặc tính này gọi chung là đặc tính củađối tượng
Lập trình hướng đối tượng là một phương pháp lập trình có các tính chấtchính sau:
Tính trừu tượng (abstraction): Đây là khả năng của chương trình bỏ quahay không chú ý đến một số khía cạnh của thông tin mà nó đang trực tiếp làmviệc lên, nghĩa là nó có khả năng tập trung vào những cốt lõi cần thiết Mỗi đốitượng phục vụ như là một "động tử" có thể hoàn tất các công việc một cách nội
bộ, báo cáo, thay đổi trạng thái của nó và liên lạc với các đối tượng khác mà
Trang 8không cần cho biết làm cách nào đối tượng tiến hành được các thao tác Tínhchất này thường được gọi là sự trừu tượng của dữ liệu.
Tính đóng gói (Encapsulation) và che giấu thông tin (Informationhiding): Tính chất này không cho phép người sử dụng các đối tượng thay đổitrạng thái nội tại của một đối tượng Chỉ có các phương thức nội tại của đốitượng cho phép thay đổi trạng thái của nó Việc cho phép môi trường bên ngoàitác động lên các dữ liệu nội tại của một đối tượng theo cách nào là hoàn toàntùy thuộc vào người viết mã Đây là tính chất đảm bảo sự toàn vẹn của đốitượng
Tính đa hình (Polymorphism): Thể hiện thông qua việc gửi các thôngđiệp (Message) Việc gửi các thông điệp này có thể so sánh như việc gọi cáchàm bên trong của một đối tượng Các phương thức dùng trả lời cho một thôngđiệp sẽ tùy theo đối tượng mà thông điệp đó được gửi tới sẽ có phản ứng khácnhau Người lập trình có thể định nghĩa một đặc tính (chẳng hạn thông qua têncủa các phương thức) cho một loạt các đối tượng gần nhau nhưng khi thi hànhthì dùng cùng một tên gọi mà sự thi hành của mỗi đối tượng sẽ tự động xảy ratương ứng theo đặc tính của từng đối tượng mà không bị nhầm lẫn
Tính kế thừa (Inheritance): Đặc tính này cho phép một đối tượng có thể
có sẵn các đặc tính mà đối tượng khác đã có thông qua kế thừa Điều này chophép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiếnhành định nghĩa lại Tuy nhiên, không phải ngôn ngữ định hướng đối tượngnào cũng có tính chất này
1.2 Tìm hiểu về MYSQL
1.2.1 Giới thiệu về MySQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến trên 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,được phát triển, phân phối và hỗ trợ bởi MySQL AB
8
Trang 9Để làm việc với MySQL cần đăng ký kết nối, tạo cở sở dữ liệu, quản lýngười dùng, phân quyền sử dụng, thiết kế đối tượng Table của cơ sở dữ liệu và
xử lý dữ liệu Để quản lý và thao tác trên cơ sở dữ liệu ta có thể sử dụng giaodiện đồ họa hoặc dạng Command line
1.2.2 Đặc điểm của MYSQL
MySQL cũng giống như các hệ quản trị CSDL: Access, SQL Server,PostgreSQL, Oracle, phần mềm mã nguồn mở do đó có thể tải miễn phí 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ảnWin32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix,Solaris…
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àmtiệ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 server hoạt động trong các
hệ thống nhúng hoặc client/server
1.2.3 Tại sao sử dụng MYSQL
Tính linh hoạt: linh hoạt về flatform là một đặc tính lớn của MySQL vớitất cả các phiên bản của Linux, Unix, và Windows được hỗ trợ Tính chất mãnguồn mở của MySQL cho phép sự tùy biến các yêu cầu thích hợp chodatabase server
Tổng chi phí thấp nhất: MySQL miễn phí hoàn toàn cho nên bạn có thểtải về MySQL từ trang chủ
Nơi lưu trữ Web và Data đáng tin cậy,tính bảo mật cao
Dễ dàng quản lý
Sự phát triển ứng dụng hỗn hợp: Một trong số các lý do khiến choMySQL là cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới là nó cung cấp hỗtrợ hỗn hợp cho bất kì sự phát triển ứng dụng nào cần
Trang 101.2.4 Kết hợp PHP và MYSQL trong ứng dụng website
1 Kết nối cơ sở dữ liệu:
mysql_connect("hostname","user","pass");
2 Lựa chọn cơ sở dữ liệu:
mysql_select_db("ten_CSDL");
3 Thực thi câu lệnh truy vấn:
mysql_query("Câu truy vấn ở đây");
4 Lấy dữ liệu từ bảng đưa vào mảng:
mysql_fetch_array();
5 Đóng kết nối cơ sở dữ liệu:
mysql_close();
1.3 Cài đặt PHP, Apache, MYSQL
Để cài đặt PHP&MYSQL, Chúng ta có thể cài đặt từng gói riêng lẻ : + PHP
+ Apache : môi trường để chạy website ứng dụng PHP
+ Mysql
Tuy nhiên, hiện nay có rất nhiều gói tích hợp rất tiện lợi: Xampp, Wamp,Appsrv… Gói phần mềm mà tôi chọn là: appserv-win32-2.5.10 (Tên phần mềm làAppserv, dành cho phiên bản window, phiên 2.5.10) Sau khi cài đặt thành côngbạn gõ vào trình duyệt : http://localhost trình duyệt sẽ hiện thị như sau:
10
Trang 11Hình 1.1 Cài đặt PHP, Apache, MYSQL
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG WEBSITE NGHE NHẠC TRỰC TUYẾN 2.1 Giới thiệu đề tài
2.1.1 Giới thiệu Website nghe nhạc trực truyến
Website nghe nhạc trực tuyến giúp cho con người giải trí, thư giãn saunhững mệt nhọc của cuộc sống Website cung cấp cho người dùng kho nhạckhổng lồ, với tất cả các thể loại nhạc Người nghe nhạc được thỏa sức tìm kiếmvới các tùy chọn: bài hát, album, ca sĩ, tác giả, Website cập nhật tất cả nhữngbài hát, album mới nhất nhằm đáp ứng nhu cầu giải trí về lĩnh vực âm nhạc
2.1.2 Mục tiêu và yêu cầu xây dựng hệ thống
+ Hướng tới việc đáp ứng nhu cầu giải trí và chia sẽ âm nhạc
+ Xây dựng chức năng đăng ký, đăng nhập
+ Xây dựng chức năng upload nhạc: từ máy tính cá nhân hoặc link nhạc + Thiết kế giao diện đơn giản, dễ nhìn, thân thiện, mang lại cảm giác thoải mái cho người sử dụng
Trang 12+ Xây dựng chức năng cập nhật bài hát, album, nhạc sĩ, ca sĩ,
2.2 Phân tích thiết kế hệ thống
2.2.1 Biểu đồ phân cấp chức năng (BFD)
BFD là việc phân rã có thứ bậc đơn giản các chức năng của hệ thốngtrong miền khảo cứu thành các chức năng nhỏ hơn, cuối cùng thu được một câychức năng
2.2 Quản Lý Tìm Kiếm
2.3 Quản Lý Nghe Nhạc
2.2.1 TK Theo Ca sĩ
2.2.2 TK Theo Bài Hát
2.2.3 TK Theo Album
2.2.4 TK Theo Nhạc sĩ
2.1.1 Quản Lý Thông Tin
2.3.2 Nghe theo Album
12
Trang 13Hình 2.1 Biểu đồ phân cấp chức năng
Giải thích chức năng:
Quản lý phân quyền: Hạn chế tối đa sự truy cập tràn lan tránh mất mát thông tin bảo mật Chia hệ thống thành 2 cấp bậc quản lý :
+ Người sử dụng: sử dụng giao diên, chức năng cho phép
+ Người quản trị website: toàn quyền sử dụng website
2.2.2 Biểu đồ luồng dữ liệu
DFD diễn tả tập hợp các chức năng của hệ thống và mối quan hệ chuyển giao thông tin giữa các chức năng
DFD là công cụ cơ bản trong tất cả các giai đoạn phân tích, thiết kế, trao đổi và lưu trữ dữ liệu
Mục đích :
+ Xác định yêu cầu của người sử dụng
+ Lập kế hoạch và minh họa các phương án cho nhà phân tích và người sử dụng xem xét
+ Là công cụ trao đổi giữa các nhà phân tích và người sử dụng
Trang 14+ làm tài liệu đặc tả yêu cầu hình thức và đặc tả thiết kế hệ thống.
14
Trang 15Ký hiệu dùng trong biểu đồ luồng dữ liệu :
Trả lời thông tin Xác nhận
Hình 2.2 Biểu đồ luồng dữ liệu mức khung cảnh
Tên chức năng
Tên tác nhân ngoài
Khách
Quản Lý Website Nghe Nhạc
Trang 16b Biểu đồ luồng dữ liệu mức đỉnh
16
Trang 18Hình 2.3 Biểu đồ luồng dữ liệu mức đỉnh
c Biểu đồ luồng dữ liệu mức dưới đỉnh
Biểu đồ luồng mức dưới đỉnh chức năng quản lý hệ thống
18
Trang 20Hình 2.4 Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý hệ thống
Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý thành viên
20
Trang 21Hình 2.5 Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý thành viên
Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý tìm kiếm
Trang 22Hình 2.6 Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý tìm kiếm
Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng Quản lý nghe nhạc
22
Trang 23
Hình 2.7 Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý nghe nhạc
2.3 Chi tiết các bảng dữ liệu
2.3.1 Bảng Album (album)
Hình 2.8 Bảng Album (album)
2.3.2 Bảng Bài hát (bai_hat)
Trang 25Hình 2.11 Bảng Thể loại (the_loai)
2.3.5 Bảng người dùng (nguoi_dung)
Hình 2.12 Bảng người dùng (nguoi_dung)
2.3.6 Bảng quốc gia (quoc_gia)
Hình 2.13 Bảng quốc gia (quoc_gia)
2.3.7 Bảng nhạc sĩ (nhac_si)