Tải bản đầy đủ (.pdf) (55 trang)

Ứng dụng php, mysql và javascript xây dựng trang web tin tức cho lớp 53k1

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 (2.1 MB, 55 trang )

Đồ án tốt nghiệp đại học

TRƢỜNG ĐẠI HỌC VINH
KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN THỊ LAN

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

ỨNG DỤNG PHP, MYSQL VÀ JAVASCRIPT XÂY
DỰNG TRANG WEB TIN TỨC CHO LỚP 53K1

Nghệ An, 01/2017

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 1


Đồ án tốt nghiệp đại học

TRƢỜNG ĐẠI HỌC VINH
KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

ỨNG DỤNG PHP, MYSQL VÀ JAVASCRIPT XÂY
DỰNG TRANG WEB TIN TỨC CHO LỚP 53K1

Sinh viên thực hiện:


Nguyễn Thị Lan

Mã số sinh viên:

1251071540

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

TS. Cao ThanhSơn

Nghệ An, 01/2017

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 2


Đồ án tốt nghiệp đại học

LỜI CẢM ƠN
Để hoàn thiện được đồ án này, ngoài sự nỗ lực của bản thân. Em xin gửi lời
cảm ơn chân thành đến tất cả quý thầy cô trong khoa Khoa Công nghệ Thông tin
đã giảng dạy, truyền đạt kiến thức cho em trong suốt thời gian vừa qua.
Em xin chân thành cảm ơn Thầy giáo TS. Cao Thanh Sơn đã nhiệt tình và
hết lịng giúp đỡ em trong suốt q trình thực hiện đồ án này.
Cho em bày tỏ lòng biết ơn tới gia đình thân u, những người bạn thân đã
ln quan tâm, ủng hộ, tin tưởng, giúp đỡ em trong thời gian qua.
Trong quá trình thực hiện đồ án, tuy đã nỗ lực hết mình nhưng đồ án của
em khó tránh khỏi những thiếu sót. Em rất mong nhận được sự thơng cảm và góp
ý tận tình của q thầy cơ để có thể hồn thiện tốt hơn đồ án này.

Nghệ An, ngày 6 tháng 1 năm 2017
Sinh viên

Nguyễn Thị Lan

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 3


Đồ án tốt nghiệp đại học

MỤC LỤC
LỜI CẢM ƠN ......................................................................................................... 3
LỜI MỞ ĐẦU ......................................................................................................... 6
CHƢƠNG 1 CƠ SỞ LÍ THUYẾT ....................................................................... 8
1.1 Giới thiệu HTML, CSS .................................................................................. 8
1.2 Tổng quan về ngôn ngữ PHP ......................................................................... 8
1.2.1 Giới thiệu về PHP .................................................................................. 8
1.2.2 Cú pháp PHP ......................................................................................... 9
1.2.3 Khái niệm biến, hằng và chuỗi trong PHP .......................................... 11
1.2.4 Các kiểu dữ liệu trong PHP................................................................. 12
1.2.5 Các phép toán trong PHP.................................................................... 12
1.2.6 Các cấu trúc điều khiển trong PHP..................................................... 14
1.2.7 Truy cập đến FORM ............................................................................ 16
1.2.8 Session và Cookie ................................................................................ 16
1.3 Tổng quan về hệ quản trị cơ sở dữ liệu MySQL ......................................... 18
1.3.1 Giới thiệu về MySQL ........................................................................... 18
1.3.2 Kiểu dữ liệu trong MySQL ................................................................... 19
1.3.3 Các phát biểu SQL ............................................................................... 21

1.3.4 Một số ví dụ ......................................................................................... 21
1.4 JavaScript .................................................................................................... 20
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5

Giới thiệu về JavaScript ...................................................................... 20
Chèn JavaScript vào trang HTML....................................................... 20
Biến và phân loại biến ......................................................................... 21
Các hàm cơ bản ................................................................................... 21
Hàm Function ...................................................................................... 22

CHƢƠNG 2 PHÂN TÍCH HỆ THỐNG VÀ THIẾT KẾ CHỨC NĂNG ..... 26
2.1 Phát biểu bài toán ......................................................................................... 26
2.2 Các quy trình trên Website .......................................................................... 26
2.2.1 Quy trình đăng kí thành viên ................................................................. 26
2.2.2 Quy trình đăng nhập ............................................................................. 27
2.2.3 Quy trình cập nhật dữ liệu .................................................................... 28
2.2.4 Quy trình tìm kiếm ................................................................................. 29
2.3 Yêu cầu hệ thống ......................................................................................... 29
2.3.1 Yêu cầu chức năng ................................................................................ 29

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 4


Đồ án tốt nghiệp đại học


2.3.2 Yêu cầu phi chức năng .......................................................................... 31
2.4 Mơ hình hóa chức năng ............................................................................... 31
2.5 Mơ hình hóa dữ liệu ..................................................................................... 33
CHƢƠNG 3 XÂY DỰNG WEBSITE THÔNG TIN LỚP 53K1 .................... 39
3.1 Xây dựng cơ sở dữ liệu ................................................................................ 39
3.2 Xây dựng các trang chức năng .................................................................... 43
3.3 Xây dựng các trang quản lý ......................................................................... 47
KẾT LUẬN ........................................................................................................... 50
TÀI LIỆU THAM KHẢO ..................................................................................... 51

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 5


Đồ án tốt nghiệp đại học

LỜI MỞ ĐẦU
1. Lý do chọn đề tài
Trong thời đại công nghệ thông tin phát triển nhanh chóng, Internet được
ứng dụng rộng rãi vào các lĩnh vực của đời sống như hiện nay, thì việc xây dựng
website tin tức, trao đổ i thông tin cũng khơng có gì xa lạ bởi vì lợi ích mà nó đem
lại khơng hề nhỏ: tiết kiệm thời gian, cơng sức đem lại hiệu quả cao trong viê ̣c
trao đổ i thơng tin.
Nắm bắt được những lợi ích mà Internet nói chung và cu ̣ thể là website tin
tức nói riêng mang lại, em đã chọn đề tài “Ứng dụng PHP, MySQL và JavaScript
xây dựng trang web tin tức cho lớp 53K1” với mục đích ta ̣o ra những thuận lơ ̣i
trong viê ̣c trao đổ i thông tin, chia sẻ tài liệu học tập giữa các thành viên trong lớp.
2. Mục tiêu và nhiệm vụ nghiên cứu

Mục tiêu : Ứng dụng ngôn ngữ PHP, hệ quản trị sơ sở dữ liệu MySQL và
JavaScript để xây dựng được một website hồn thiện, có đầy đủ chức năng giúp
người dùng dễ dàng tương tác, trao đổi thông tin với nhau trên website.
Nhiê ̣m vu ̣ nghiên cứu:
- Tìm hiểu những lơ ̣i ić h mà website thơng tin mang lại;
- Tìm hiểu về ngôn ngữ PHP, hê ̣ quản tri ̣cơ sở dữ liê ̣u MySQL để xây dựng
mô ̣t website;
- Tìm hiểu những yêu cầ u của đ ối tượng sử dụng website từ đó xây dựng
mơ ̣t website phù hơ ̣p và đá p ứng đươ ̣c nhu cầ u sử du ̣ng;
- Xây dựng và hoàn thiện website, có sử dụng kết nối cơ sở dữ liệu.
3. Đối tƣợng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
- Tấ t cả thành viên trong lớp 53K1 và những người quan tâm đến website;
- Ngôn ngữ PHP;
- Hệ cơ sở dữ liệu MySQL;
- JavaScript.
Phạm vi nghiên cứu:

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 6


Đồ án tốt nghiệp đại học

- Nghiên cứu về cách tiế p câ ̣n cũng như trao đổ i th ông tin của người dùng
trên Internet, những yêu cầ u chức năng mà người dù

ng đă ̣t ra khi sử du ̣ng


website giúp ho ̣ dễ dàng tương tác trên website;
- Tài liệu về ngôn ngữ PHP;
- Tài liệu sử dụng hệ quản trị cơ sở dữ liệu MySQL.
4. Phƣơng pháp nghiên cứu
- Tìm hiểu, nghiên cứu các tài liệu về ngôn ngữ PHP và hệ quản trị cơ sở dữ
liệu MySQL;
- Khảo sát thực tế, tham khảo ý kiến của những người sử dụng để đặt ra
được những yêu cầu, chức năng cần thiết của website;
- Xây dựng website đáp ứng được nhu cầu sử dụng dựa trên kết quả khảo
sát thực tế.
5. Ý nghĩa khoa học và thực tiễn
Tổ ng hơ ̣p, áp du ̣ng đươ ̣c những kiế n thực đã nắ m đươ ̣c trong quá trin
̀ h ho ̣c
tâ ̣p để xây dựng, hoàn thiện website. Chứng minh đươ ̣c những lơ ̣i ích mà Internet
mạng lại trong thời đại công nghệ thông tin phát triển như hiện nay

. Tạo điều

kiê ̣n thuâ ̣n lơ ̣i cho viê ̣c trao đổ i thông tin , chia sẻ tài liê ̣u giữa các thành viên
trong lớp. Giúp tiết kiệm thời gian, công sức và tiề n ba ̣c.
6. Bố cục đồ án
Ngoài lời mở đầu và phần kết luận, bố cục của đồ án bao gồm 3 chương, cụ
thể:
Chƣơng 1. CƠ SỞ LÍ THUYẾT
Chương này trình bày các hiểu biết về ngôn ngữ PHP, các kiến thức cơ bản
của MySQL và JavaScript.
Chƣơng 2. PHÂN TÍCH HỆ THỐNG VÀ THIẾT KẾ CHỨC NĂNG
Chương này giới thiệu các quy trình trên website, phát biểu và phân tích
bài tốn website thông tin lớp 53K1.
Chƣơng 3. XÂY DỰNG WEBSITE

Các bước xây dựng cơ sở dữ liệu, các trang chức năng và các trang quản lí
của trang web sẽ được trình bày chi tiết trong chương này.

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 7


Đồ án tốt nghiệp đại học

CHƢƠNG 1. CƠ SỞ LÍ THUYẾT
Chương này gồm có 3 phần nhằm khái quát các kiến thức tìm hiểu được về
PHP, MySQL và JavaScript. Xuất phát ở mục 1.1 là tổng quan, lịch sử phát triển
và các ưu điểm của PHP. Tiếp theo là cách khai báo cú pháp, cách sử dụng biến
và hằng, cơ bản về các toán tử, truy cập trến Form và khái niệm Session-Cookie.
Mục 1.2 trình bày tổng quan về hệ quản trị cơ sở dữ liệu MySQL, các kiểu dữ
liệu trong MySQL để sử dụng chính xác cũng như cú pháp câu lệnh sử dụng
trong MySQL. Cuối cùng là cách sử dụng JavaScript trong các thẻ HTML, các
đặc điểm của JavaScript, cách chèn JavaScript vào trang HTML và cách sử dụng
các hàm cơ bản.
1.1 Tổng quan về ngôn ngữ lập trình PHP
1.1.1 Giới thiệu về PHP
PHP được viết tắt của chữ Personal Home Page. Là ngơn ngữ kịch bản trình
chủ (Server Script) chạy trên phía máy chủ (Server side) giống như các server
script khác: ASP, JSP, … Là kịch bản cho phép chúng ta xây dựng ứng dụng web
trên mạng Internet hay Intranet tương tác với mọi cơ sở dữ liệu như: Informix,
MySQL, PostgreSQL, Oracle, Sybase, SQL Server, … Các tệp PHP có thể chứa
văn bản (Text), các thẻ HTML (HTML tags) và các đoạn mã kịch bản (Script).
Năm 1995, phiên bản đầu tiên ra đời có tên là PHP/FI được viết bởi nhà phát
triển phần mềm Rasmus Lerdorf [1].

PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một
số các chức năng cơ bản của PHP ngày nay.
Năm 1997, phiên bản PHP/FI 2.0 ra đời nhưng chỉ được công bố dưới dạng
các bản beta. Đến tháng 11 năm 1997 mới chính thức được cơng bố.
Năm 1997, phiên bản PHP 3.0 ra đời bởi Andi Gutmans và Zeev Suraski
sau khi viết lại tồn bộ mã nguồn trước đó và được cơng bố chính thức vào tháng
6 năm 1998.
Tháng 05/2000, phiên bản PHP 4.0 với hàng loạt các tính năng mới bổ
sung, đã chính thức được cơng bố.
29/06/2003, phiên bản PHP 5 Beta 1 đã chính thức được cơng bố

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 8


Đồ án tốt nghiệp đại học

Tháng 10/2003, phiên bản Beta 2 ra mắt với sự xuất hiện của hai tính năng
rất được chờ đợi: Iterators, Reflection nhưng namespace một tính năng gây tranh
cãi khác đã bị loại khỏi mã nguồn.
Ngày 21/12/2003, phiên bản PHP 5 Beta 3 đã được công bố.
Ngày 13/07/2004, phiên bản PHP 5 bản chính thức đã ra mắt 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.
Ngày 14/07/2005, phiên bản PHP 5.1 Beta 3 được PHP Team công bố đánh
dấu sự chín muồi mới của PHP với sự có mặt của PDO.
Phiên bản PHP 7 được cập nhật vào ngày 12/12/2014. Phiên bản này hỗ trợ
tốt trên nền hệ điều hành Windows 64-bit. PHP 7 giới thiệu 4 kiểu khai báo mới
cho các kiểu vô hướng: int, float, string và bool và cho phép sử dụng các lớp vơ
danh (anonymous) [6].

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, Linux, Unix;
- Rấ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.2 Cú pháp PHP
1.1.2.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:
<?php Mã lệnh PHP ?>

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 9


Đồ án tốt nghiệp đại học

Cách 2: Cú pháp ngắn gọn:
<? Mã lệnh PHP ?>


Cách 3: Cú pháp giống với ASP:
<% Mã lệnh PHP %>

Cách 4: Cú pháp bắt đầu bằng script:
<script language=php>
...
</script>

Mặc dù có bốn cách thể hiện. Nhưng đối với một lập trình viên có kinh
nghiệm thì việc sử dụng cách 1 vẫn là lựa chọn tối ưu.
Trong PHP để kết thúc một dòng lệnh chúng ta sử dụng dấu ";"
Để chú thích một đ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.
echo "LOP53K1"; // Day la vi du ve code PHP
/* Voi cu phap nay chung ta
Co the chu thich 1 cum ma lenh */
?>

1.1.2.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 …
echo "Xin chào";
printf "
<font color=red> lớp 53K1</font>";
?>


Nếu giữa hai chuỗi muốn liên kết với nhau ta sử dụng dấu "."
echo "Xin chào "."lớp 53K1";
?>

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 10


Đồ án tốt nghiệp đại học

1.1.3 Khái niệm biến, hằng và chuỗi trong PHP
1.1.3.1 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à một từ, một 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 một 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].
Một số ví dụ về biến:
$a = 100


// biến a ở đây có giá trị là
// 100

$a = "Lop53K1"

// biến a ở đây có giá trị là
// "Lop53K1".

biena = 123

// Cõ lỗi vì bắt đầu 1 biến
// phải có dấu $.

$123a = "Lop53K1"

// Cõ lỗi vì phần tên bắt đầu
// của biến là dạng số.

?>

1.1.3.2 Hằng trong PHP
Nếu biến có thể thay đổi được thì ngược lại đối với hằng, 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) [1]. Cũng giống với biến hằng được
xem là hợp lệ thì chúng phải đáp ứng một số yếu tố:
 Hằng khơng có dấu "$" ở trước tên.

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 11



Đồ án tốt nghiệp đại học

 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 một lần.
 Hằng thường viết bằng chữ in để phân biệt với biến .
Ví dụ :
define ("C","COMPANY");
define ("YELLOW","ffff00");
echo " Gia tri cua C la ". C;
?>

1.1.3.3 Khái niệm về 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ụ:
'53K1CNTT'
"Xin chào lớp 53K1CNTT"

Để tạo một biễn chuỗi, chúng ta phải gán giá trị chuỗi cho một biến hợp lệ.
Ví dụ:
$fisrt_name = "Nguyen";
$last_name = 'Thi Lan';

Để liên kết một chuỗi và một biến chúng ta thường sử dụng dấu "."
1.1.4 Các kiểu dữ liệu PHP
Php hỗ trợ các kiểu dữ liệu như sau:
 Integer: sử dụng cho giá trị có kiểu dữ liệu là số nguyên.

 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 Các phép toán trong PHP
1.1.5.1 Các phép toán số học
Là dạng phép tính giản đơn cộng, trừ, nhân, chia trong số học. Ngồi ra cịn
có phép chia lấy dư (%). Được sử dụng để lấy ra đơn vị dư của một phép toán.

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 12


Đồ án tốt nghiệp đại học

Tốn tử

Giải thích

Ví dụ

Kết quả

+

Cộng hai số hạng

10 + 2


12

-

Trừ hai số hạng

10 - 2

8

*

Nhân hai số hạng

10 * 2

20

/

Chia hai số hạng

10 / 2

5

%

Trả về số dư


10 % 2

0

Bảng 1.1: Các phép toán số học
1.1.5.2 Các phép toán so sánh
Là toán tử được sử dụng để thực hiện các phép toán so sánh giữa hai số
hạng. Chi tiết, xem bảng bên dưới.
Phép
tốn
==
!=
===
>
>=
<
<=

Giải thích

Tên

Ví dụ

Bằng
Hai số hạng bằng nhau
$a == 10
Không bằng
Hai số hạng không bằng nhau
$a != 10

Đồng nhất
Hai số bằng nhau và cùng kiểu
$a === 10
Lớn hơn
Vế trái lớn hơn vế phải
$a > 10
Lớn hơn hoặc bằng Vế trái lớn hơn hoặc bằng vế phải $a >= 10
Nhỏ hơn
Vế trái nhỏ hơn vế phải
$a < 10
Nhỏ hơn hoặc
Vế trái nhỏ hơn hoặc bằng vế phải $a <= 10
bằng
Bảng 1.2: Các phép toán so sánh

1.1.5.3 Các phép toán logic
Toán tử logic là các tổ hợp các giá trị boolean. Các phép toán logic trả về
giá trị true hoặc false.
Tốn tử

Tên

Ví dụ

&&

And (và)

$a && $b


||

Or (hoặc)

$a or $b

!

Not (phủ định)

!$c

Bảng 1.3: Các phép toán logic

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 13


Đồ án tốt nghiệp đại học

1.1.5.4 Phép toán trên chuỗi
Để cộng (ghép) hai chuỗi lại với nhau ta sử dụng dấu chấm (.).
Ví dụ:
$string1="Nguyễn";
$string2="Lan";
echo $string1 . " " . $string2; //-> Nguyễn Lan
?>


1.1.5.5 Các phép toán tự tăng giảm
Khi tạo mã PHP, chúng ta sẽ thường nhận thấy cần phải tăng hoặc giảm
lượng biến một số nguyên nào đó. Thực hiện điều này khi đếm một giá trị nào đó
trong vịng lặp.
Phép tốn

Ví dụ

Giải thích

++

$a++

Bằng với $a=$a+1

--

$a--

Bằng với $a=$a-1

+=

$a += $b

Bằng với $a=$a+$b

-=


$a -= $b

Bằng với $a=$a-$b

*=

$a *= $b

Bằng với $a=$a*$b

/=

$a /= $b

Bằng với $a=$a/$b

Bảng 1.4: Các phép toán tự tăng giảm
1.1.6 Các cấu trúc điều khiển trong PHP
1.1.6.1 Cấu trúc rẽ nhánh
 Cấu trúc if :
if(điều_kiện)
câu lệnh;
if(điều kiện)
câu lệnh 1;
else
câu lệnh 2;
$Tên_biến = điều_kiện?giá_trị_1:giá_trị_2;

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT


Trang 14


Đồ án tốt nghiệp đại học

 Cấu trúc switch:
Sử dụng khi có nhiều lựa chọn, cú pháp:
switch($biến)
{
case(giá_trị_1):
{các_lệnh_1;break;}
case(giả_trị_2):
{các_lệnh_2;break;}

case(giả_trị_n):
{các_lệnh_n;break;}
default: các_lệnh_khác;
}

1.1.6.2 Cấu trúc lặp
 Cấu trúc while:
Phép lặp này yêu cầu phải thỏa mãn điều kiện thì mới thực thi được vịng
lặp.
while(điều_kiện)
{
các_lệnh;
}

 Cấu trúc do … while:
Phép lặp này sẽ thực thi hành động ít nhất là một lần. Sau đó mới tiến hành

kiểm tra điều kiện.
do
{
các_lệnh;
}
while(điều_kiện)

 Cấu trúc for:
Phép lặp này là phép tốn gộp các tham số. Giúp người lập trình giảm thiểu
thời gian phải khai báo biến và các tham số khi thực thi việc lặp dữ liệu.

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 15


Đồ án tốt nghiệp đại học

for(lệnh_khởi_tạo; điều_kiện; gia_số)
{
các_lệnh ;
}

 Cấu trúc foreach:
foreach($biến_mảng

as

giá_trị


(hoặc

$khóa

=>

$giá_trị))
{
các_lệnh;
}

1.1.7 Truy cập đến FORM
Form cùng với các thuộc tính của nó là nơi người sử dụng nhập dữ liệu vào,
để có thể sử dụng được dữ liệu đó thì chúng ta phải kết nối đến form. Khi làm
việc với form thì các phần tử trên form trên trang HTML sẽ tự động trở thành
biến trong đoạn mã PHP. Để lấy giá trị từ các phần tử form thì ta sử dụng $_GET
hoặc $_POST [1].
1.1.7.1 Hàm GET
Là hàm xây dựng sẵn dùng để lấy giá trị từ FORM với method = get.
Thông tin truyền đi với phương thức GET sẽ được hiển thị trên thanh địa chỉ
trình duyệt, mọi người có thể nhìn thấy thơng tin với số ký tự tối đa là 100.
Cú pháp: $_GET["tên_phần_tử"]
1.1.7.2 Hàm POST
Cũng như hàm GET, hàm POST cũng dùng để lấy giá trị từ FORM nhưng
hàm POST không hiển thị thông tin trên thanh địa chỉ trình duyệt nên khơng thể
nhìn thấy thơng tin đang truyền.
Cú pháp: $_POST["tên_phần_tử"]
1.1.8 Session và Cookie
Session và Cookie 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. Việc quản lý phiên làm việc này sẽ giúp tạo

ra sự chứng thực hiệu quả bởi việc xác nhận thông tin trước khi truy cập vào một
phân vùng cố định. Ngoài ra, việc quản lý tốt phiên làm việc cũng giúp người

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 16


Đồ án tốt nghiệp đại học

truy cập cảm thấy dễ dàng sử dụng dịch vụ của trang web cho những lần truy cập
sau. Bởi cơ chế quản lý phiên làm việc ghi nhận lại quá trình truy cập của người
sử dụng khi họ duyệt trang web lần đầu [1].
1.1.8.1 Session
Đối tượng Session được xem như là một đối tượng cho phép truyền truyền
giá trị từ trang PHP này sang trang PHP trong cùng một website. Session được
sinh ra và mất đi khi người sử dụng hủy chúng, thời gian sống của chúng đã hết,
hoặc người sử dụng đóng trình duyệt.
Khi muốn sử dụng Session thì chúng ta phải khởi tạo chúng trong trang
PHP mà chúng ta muốn sử dụng và đặt ở đầu trang bằng hàm:
session_start();

Tuy nhiên, có thể cấu hình trong trang php.ini.
session.auto_start = 0;

Khai báo và gán giá trị cho biến Session.
$_SESSION ["chỉ số"] = giá_trị;

Sau khi khởi động và lưu thơng tin, các Session này có hiệu lực trên mọi
trang PHP mà người dùng truy cập website tương ứng với trình duyệt đang mở.

Để hủy Session chúng ta dùng hàm session_unser() hoặc
session_destroy().

Hàm session_unser(): Dùng hủy bỏ các biến Session đang có hiệu lực.
Ngồi ra muốn hủy bỏ một biến nào đó thì ta phải truyền tham số cho hàm.
Hàm session_destroy(): Kết thúc tất các các Session và dữ liệu trong đó.
1.1.8.2 Cookie
Cookie thường được sử dụng để xác định người sử dụng, nó cũng được xem
là Session nhưng nó lưu thơng tin trên trình khách (client). Tại một thời điểm nào
đó, máy tính u cầu một trang web cùng với trình duyệt thì nó cũng gửi cookie
đi kèm [1].
Thiết lập Cookie: Muốn thiết lập Cookie ta sử dụng hàm setcookie để
gán giá trị cho Cookie theo cú pháp:
setcookie("tên

cookie","giá

trị",

thời

gian

sống);

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 17



Đồ án tốt nghiệp đại học

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("username","admin", time() + 3600);

Như ví dụ trên ta thấy với tên là username và giá trị là admin, có thời
gian sống là 1 giờ tính từ thời điểm thiết lập.
Chú ý: Kịch bản Cookie phải đặt trên mọi giá trị trả về bao gồm thẻ HTML
và lệnh echo.
Sử dụng Cookie: Để sử dụng lại Cookie vừa thiết lập, chúng ta sử dụng 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 Cookie: Để hủy một 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ứ.
Ví dụ: setcookie("name","LAP TRINH",time() - 3600);
1.2 Tổng quan về hệ quan về hệ quản trị cơ sở dữ liệu MySQL
1.2.1 Giới thiệu về MySQL
MySQL là một hệ quản trị cơ sở dữ liệu quan hệ miễn phí. Để 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, bảng 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ử du ̣ng giao diê ̣n đờ họa hoặc dạng dịng
lệnh (Command line) [1].
MySQL là 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ản Win32 cho
các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, Solaris… MySQL là
hệ quản trị 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ó

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 18


Đồ án tốt nghiệp đại học

truy cập CSDL trên Internet. MySQL hoạt động trong các hệ thống nhúng hoặc
client/server [1].
1.2.2 Kiểu dữ liệu trong MySQL
 Kiểu dữ liệu String
Kiểu dữ liệu

Mơ tả
Cố định chiều dài chuỗi (có thể chứa chữ cái, số và

CHAR (size)

ký tự đặc biệt). Cố định kích thước trong ngoặc đơn.
Có thể ghi âm lên đến 255 ký tự.

VARCHAR
(size)


Nó có thể lưu trữ lên đến 255 ký tự.

TINYTEXT

Nó có thể lưu trữ lên đến 255 ký tự.

TEXT

Nó có thể lưu trữ lên đến 65.535 ký tự.

BLOB

Nó có thể lưu trữ lên đến 65.535 ký tự.

MEDIUMTEXT

Nó có thể lưu trữ lên đến 16.777.215 ký tự.

MEDIUMBLOB

Nó có thể lưu trữ lên đến 16.777.215 ký tự.

LONGTEXT

Nó có thể lưu trữ lên đến 4294967295 ký tự.

LONGBLOB

Nó có thể lưu trữ lên đến 4294967295 ký tự.
Khi định nghĩa một field kiểu này, tức là, ta đã chỉ ra

một danh sách các đối tượng mà field phải nhận (có

ENUM

thể là Null). Ví dụ, nếu ta muốn một field nào đó chỉ
nhận một trong các giá trị "A" hoặc "B" hoặc "C" thì
ta phải định nghĩa kiểu ENUM cho nó như sau:
ENUM ('A', 'B', 'C').
Nhắc ENUM ngoại trừ SET có thể chứa lên đến 64

SET

giá trị.
Bảng 1.5: Kiểu dữ liệu String

 Kiểu dữ liệu numeric
Kiểu dữ liệu

Mơ tả

TINYINT (size)

Có thể lưu trữ các số từ -128 đến 127.

SMALLINT (size)

Phạm vi từ -32.768 đến 32.767.

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT


Trang 19


Đồ án tốt nghiệp đại học

Phạm vi đó là để 8.388.607 đến 8.388.608.

MEDIUMINT (size)

Phạm vi từ -2.147.483.648 đến

INT (size)

2.147.483.647.
Phạm vi từ -9.223.372.036.854.775.808 đến

BIGINT (size)

9.223.372.036.854.775.807.

FLOAT (kích thước, d)
DOUBLE (kích thước, d)
DECIMAL (kích thước,
d)

Số lượng chính xác dấu chấm động.
Floating-point gấp đơi độ chính xác của
Float.
Fractional số được lưu trữ như là một chuỗi.


Bảng 1.6: Kiểu dữ liệu numeric
 Kiểu dữ liệu date và time
Kiểu dữ liệu

Mô tả
Dữ liệu kiểu ngày được thể hiện ở dạng yyyy-mm-dd.

DATE ()

Từ 1000-01-01 đến 9999-12-31. Ví dụ, ngày 25 tháng
12 năm 2015 sẽ được lưu ở dạng 2015-12-25.được lưu
trữ như là: 1973-12-30.
Dữ liệu kiểu ngày-giờ được thể hiện ở dạng yyyy-

DATETIME()

mm-dd hh:mm:ss. Từ 1000-01-01 00:00:00 đến 999912-31 23:59:59. Ví dụ, 3:30 chiều ngày 25 tháng 12,
năm 2015 sẽ được lưu ở dạng 2015-12-25 15:30:00.

TIME()

Dữ liệu kiểu giờ được thể hiện ở dạng hh:mm:ss.
Lưu 1 năm trong định dạng 2 chữ số hoặc 4 chữ số.
Nếu độ dài được xác định là 2 (ví dụ: YEAR(2)),

YEAR ()

YEAR có thể từ 1970 tới 2069 (70 tới 69). Nếu độ dài
được xác định là 4, YEAR có thể từ 1901 tới 2155. Độ
dài mặc định là 4.

Bảng 1.7: Kiểu dữ liệu date và time

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 20


Đồ án tốt nghiệp đại học

1.2.3 Các phát biểu SQL (Structured Query Language)
1.2.3.1 Cậu lệnh SELECT
Câu lệnh SELECT được dùng để truy xuất dữ liệu từ một bảng. Kết quả trả
về dưới dạng bảng được lưu trong một một bảng, gọi là bảng kết quả.
Cú pháp:
SELECT <Danh sách các cột/biểu thức>
[FROM <danh sách các bảng>]
[WHERE <các điều kiện>]
[GROUP BY <tên cột/ biểu thức trong SELECT>]
[HAVING <điều kiện bắt buộc của GROUP BY>]
[ORDER BY <cột sắp xếp>]
[LIMIT FromNumber | ToNumber]
1.2.3.2 Câu lệnh INSERT INTO
Câu lệnh INSERT INTO dùng để thêm dữ liệu vào một bảng đã tồn tại.
Cú pháp:
INSERT INTO <tên_bảng>(<danh_sách_cột>)
VALUES <(giá_trị_1, giá_trị_2,…)>
1.2.3.3 Câu lệnh UPDATE
Câu lệnh UPDATE được dùng để thay đổi giá trị của một tập hợp các bản
ghi trong một bảng.
Cú pháp:

UPDATE <tên_bảng>
SET <tên_cột = tên_giá_trị_mới>
WHERE <tên_cột = điều_kiện>
1.2.3.4 Câu lệnh DELETE
Câu lệnh DELETE được dùng để xóa những bản ghi tồn tại trong một bảng.
Cú pháp
DELETE FROM< tên_bảng>
WHERE <tên_cột = điều_kiện>

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 21


Đồ án tốt nghiệp đại học

1.3 JavaScript
1.3.1 Giới thiệu về JavaScript
Javscipt là ngôn ngữ kịch bản (scripting language) dùng để tương tác với
các trang HTML dựa trên đối tượng được hãng Netscape Communication phát
triển. Chủ yếu dùng cho kĩ thuật ở phía client. Các mã của JavaScript thường
được nhúng trực tuyến và tích hợp vào trang web [4].
Có một số đặc điểm sau:
 JavaScript là một ngôn ngữ thông dịch, chương trình nguồn của nó được
thơng dịch trong trang HTML sau khi toàn bộ trang được nạp nhưng
trước khi trang được hiển thị;
 Đơn giản;
 Lập trình theo cấu trúc (Structured programming );
 Có phân biệt chưa hoa và chữ thường [4].
Các ứng dụng client chạy trên một trình duyệt như Netscape Navigator hoặc

Internet Explorer,…
1.3.2 Chèn JavaScript vào trang HTML
Có thể nhúng JavaScript vào một file HTML theo một trong các cách sau
đây:
 Sử dụng thẻ Script:
<script language = "JavaScript">
//-->
</script>

 Sử dụng một file JavaScript ở ngoài:
<scrip language = "JavaScript" src = "filename.js">
</script>
 Sử dụng các biểu thức JavaScript trong các giá trị thuộc tính của thẻ.
 Sử dụng trong các trình điều khiển sự kiện.

Ví dụ:
<HTML>

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 22


Đồ án tốt nghiệp đại học

<HEAD>
<SCRIPT LANGUAGE = "JavaScript">
confirm("Bạn có chắc chắn muốn xóa khơng?");
alert("Đồng ý");

document.write("Cảm ơn");
</SCRIPT>
</HEAD>
</HTML>

1.3.3 Biến và phân loại biến
Tên biến trong JavaScript phải bắt đầu bằng chữ hay dấu gạch dưới. Các
chữ số không được sử dụng để mở đầu tên một biến nhưng có thể sử dụng sau kí
tự đầu tiên.
Biến có hai kiểu:s
 Biến tồn cục: Có thể được truy cập từ bất kì đâu của ứng dụng. Được khai
báo như sau:
x = 0;

 Biến cục bộ: Chỉ được truy cập trong pham vi chương trình mà nó khai
báo. Khai báo như sau:
var x = 0;

1.3.4 Các hàm cơ bản
JavaScript có một số hàm có sẵn, gắn trực tiếp vào chính ngơn ngữ và
khơng nằm trong đối tượng nào:
 eval
 parseInt
 parseFloat
1.3.4.1 Eval
Hàm này được sử dụng để đánh giá các biểu thức hay lệnh. Biểu thức, lệnh
hay các đối tượng của thuộc tính đều có thể được đánh giá và thi hành như là mã
JavaScript.
Cú pháp: eval("chuỗi")


Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 23


Đồ án tốt nghiệp đại học

Ví dụ:
str="if (3>2) document.write('đúng');
else document.write('sai');"
var ktra = eval(str);

//-> đúng

document.write("
" + eval("2+2")); //-> 4

1.3.4.2 ParseInt
Hàm này chuyển một số chuỗi thành số nguyên với cơ số là tham số thứ 2
(tham số này không bắt buộc). Chỉ phân tích số đầu tiên và nếu khơng chuyển
được, trả về NaN (Not a Number).
Cú pháp: parseInt("chuỗi" [<cơ số>])
Ví dụ:
document.write(parseInt("3") + "
");

//-> 3

document.write(parseInt("10.33") + "
");


//->10

document.write(parseInt("2 4 6") + "
");

//->2

document.write(parseInt("60") + "
");

//->60

document.write(parseInt("30 ngày") + "
");

//->30

document.write(parseInt("Tôi 20") + "
");

//->NaN

1.3.4.3 PaseFloat
Tương tự hàm paseInt nhưng trả về số thực.
Cú pháp: parseFloat("chuỗi")
Ví dụ:
document.write(parseFloat("10.33") + "
");

//->10.33


document.write(parseFloat("23 4 6") + "
");

//->23

document.write(parseFloat("60") + "
");

//->60

document.write(parseFloat("30 ngày") + "
");

//->30

document.write(parseFloat("Tôi 20") + "
");

//-> NaN

1.3.5 Hàm (Function)
JavaScript cũng cho phép sử dụng các hàm. Mặc dù không nhất thiết phải
có, song các hàm có thể có một hay nhiều tham số truyền vào và một giá trị trả
về.
Khai báo: hàm có thể được khai báo thẻ <head> hoặc <body> hoặc trong
tập tin *.js

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT


Trang 24


Đồ án tốt nghiệp đại học

function <tên hàm>( [ tham số 1, tham số 2, … ])
{
/* khối lệnh xử lý */
[ return <giá trị trả về >]

}
Ví dụ:
function dt_hinhchunhat(chieudai,chieurong)
{ return chieudai*chieurong; }

Sử dụng:
<biến> = <tên hàm>([<giá trị>,…])

Ví dụ:
onClick = "alert(dt_hinhchunhat(3,2))">

Nguyễn Thị Lan - Lớp 53K1 – Khoa CNTT

Trang 25


×