TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP CHUYÊN NGÀNH
ĐỀ TÀI: PHÂN TÍCH THIẾT KẾ VÀ XÂY DỰNG WEBSITE GIỚI THIỆU SẢN PHẨM CHO SHOP THỜI TRANG DAISY
Sinh viên thực hiện: Nguyễn Hoàng Anh Lớp ĐHLT CNTT K16D Giáo viên hướng dẫn:Ths. Quách Xuân Trưởng
1
Hà Nội, Ngày 15 Tháng 4 Năm 2019 LỜI CẢM ƠN Trước tiên em xin gửi lời cám ơn chân thành sâu sắc tới các thầy cô giáo trong trường Đại học Công Nghệ Thông Tin & Truyền Thông nói chung và các thầy cô giáo trong khoa Công Nghệ Thông Tin, bộ môn Kỹ Thuật Phần Mềm nói riêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức, kinh nghiệm quý báu trong suốt thời gian qua. Đặc biệt em xin gửi lời cảm ơn đến thầy Quách Xuân Trưởng, thầy đã tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm đề tài. Trong thời gian làm việc với thầy, em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, đây là những điều rất cần thiết cho em trong quá trình học tập và công tác sau này. Sau cùng xin gửi lời cảm ơn chân thành tới gia đình, bạn bè đã động viên, đóng góp ý kiến và giúp đỡ trong quá trình học tâp, nghiên cứu và hoàn thành đề tài thực tập
của mình. Hà Nội, ngày 15 tháng 4 năm 2019 Người viết
Nguyễn Hoàng Anh
2
MỤC LỤC
3
LỜI NÓI ĐẦU Với sự phát triển mạnh mẽ của công nghệ thông tin và sự lớn mạnh, rộng khắp của mạng máy tính toàn cầu. Việc ứng dụng tin học vào các lĩnh vực của cuộc sống ngày càng được quan tâm và sử dụng hiệu quả, đem lại lợi ích to lớn về mọimặt. Sự lớn mạnh của mạng máy tính đã xóa bỏ mọi gianh giới về không gian và thời gian để đem con người và tri thức xích lại gần nhau hơn. Thông qua mạng máy tính, con người có thể được tiếp xúc với mọi loại tri thức như tri thức văn hóa, xã hội, khoa học kỹ thuật. Do vậy ngày càng có nhiều ứng dụng được viết để hỗ trợ công việc thủ công của con người, đặc biệt là các ứng dụng quản lý như quản lý nhân sự, quản lý hàng hóa, quản lý điểm. Trước kia khi mạng Internet còn chưa phổ biến thì các ứng dụng thường được viết trên máy Desktop, ngày nay Internet không còn xa lạ với bất cứ ai do vậy các ứng dụng cũng có xu thế phát triển dần trên nền Web.Trong đề tài “Phân tích thiết kế và xây dựng website giới thiệu sản phẩm cho shop thời trang Daisy” này tôi xin trình bày về một ngôn ngữ lập trình web hiện đang được sử dụng phổ biến đó là ngôn ngữ PHP. Trong quá trình phân tích và cài đặt ứng dụng không thể không tránh khỏi những thiếu sót, rất mong sự
giúp đỡ tận tình của các thầy cô trong Bộ môn và bạn bè đồng nghiệp.
4
CHƯƠNG I: CƠ SỞ LÝ THUYẾT 1.1 HTML (HyperText Markup Language) HyperText Markup Language (HTML) là hàng loạt các đoạn mã chuẩn với các quy ước được thiết kế để tạo ra trang web, giúp tạo và chia sẻ các tài liệu điện tử tích hợp đa phương tiện qua Internet và được hiển thị bởi những trình duyệt Web.HTML là nền tảng của World Wide Web, một dịch vụ toàn cầu của Internet. Weblà dịch vụ mang tính đồ hoạ cao trong các dịch vụ Internet, cho phép người dùng có thể tự tạo cho riêng họ những trang Web. HTML cho phép áp dụng siêu liên kết chotài liệu và trình bày tài liệu với phông chữ, hình ảnh, kiểu gióng hàng phù hợp vớihệ thống hiển thị văn bản. HTML không phải ngôn ngữ lập trình. Thay vào đó, tạo các trang Web thường nói đến như là “authoring” (sáng tác) và đơn giản hơn nhiều so với việc tạo ra các ứng dụng trên máy tính.Có nhiều trình soạn thảo HTML và Web khác nhau như: NotePad, InternetExplorer, Microsoft FrontPage hay Netscape Navigator có công cụ soạn thảo đơngiản cho phép tạo và hiệu chỉnh tập tin HTML. Cấu trúc của HTML rất đơn giản và logic, với bố cục từ trên xuống dưới, từ trái qua phải, với 2 phần chính là HEAD và BODY. Các website viết bằng HTML đều tuân theo cấu trúc cơ bản như sau: + Mọi trang HTML đều phải khai báo DOCTYPE (định nghĩa chuẩn văn bản) ngay từ dòng đầu tiên. + Thẻ <html> cho trình duyệt biết mở đầu và kết thúc của trang HTML. + Thẻ <head> chứa tiêu đề và các thông tin khai báo, các thông tin ẩn khác. + Thẻ <body> sẽ hiển thị nội dung của trang web. Đây là phần thông tin mà người dùng sẽ nhìn thấy khi trình duyệt đọc các mã HTML. + Mọi kí tự nằm giữa dấu <!– và –> sẽ được xem là thẻ comment và sẽ bị
trình duyệt bỏ qua, không xử lý và không hiển thị. Ví dụ: <html> <head> 5
<title>Đây là thẻ đánh dấu tiêu đề trang web</title> <! Comment: Các thông tin khai báo, các thông tin ẩn > </head> <body> <! Comment: Nội dung trang web mà người dùng sẽ thấy > <b>Đây là dòng chữ in đậm</b> <i>Đây là dòng chữ in nghiêng</i> </body> </html> 1.2 CSS (Cascading Style Sheets) CSS là viết tắt của cụm từ "Cascading Style Sheet", nó là một ngôn ngữ quy định cách trình bày của các thẻ html trên trang web. Là ngôn ngữ đang được sử dụng rất nhiều trong lập trình web, có thể nói CSS ra đời đã tạo nên một cuộc cách mạng. Đôi khi các bạn sẽ bối rối khi nhận thấy rằng các đoạn code mình viết hiển thị không giống nhau trên các trình duyệt khác nhau, CSS sẽ giúp các bạn giải quyết bài toán này.CSS quy định cách hiển thị nội dung của các thẻ HTML trên các trình duyệt gần như giống nhau,bằng cách quy định các thuộc tính cho thẻ HTML đó. 1.2.1 Tại sao phải sử dụng CSS CSS cung cấp cho bạn hàng trăm thuộc tính trình bày dành cho các đối tượng với sự sáng tạo cao trong kết hợp các thuộc tính giúp mang lại hiệu quả. Ngoài ra, hiện tại CSS đã được hỗ trợ bởi tất cả các trình duyệt, nên bạn hoàn toàn có thể tự tin trang web của mình có thể hiển thị hầu như (như nhau) dù trên một hệ thống sử dụng Windows, Linux hay trên một máy Mac miễn là bạn đang sử dụng
một phiên bản trình duyệt mới nhất. CSS đưa ra phương thức “ngoại tuyến” giúp áp dụng một khuôn mẫu chuẩn từ một file CSS ở ngoài. Nó thật sự có hiệu quả đồng bộ khi bạn tạo một website có hàng trăm trang hay cả khi bạn muốn thay đổi một thuộc tính trình bày nào đó. Sử dụng CSS làm thay đổi font chữ hay màu chữ cho một thành phần nào đó
6
Ngoài ra, CSS còn cho phép bạn áp đặt những kiểu trình bày thích hợp hơn cho các phương tiện khác nhau như màn hình máy tính, máy in, điện thoại,… 1.2.2 Cách chèn CSS vào trang HTML Cách 1: Chèn nội dung CSS vào trong cặp thẻ <style></style> trong phần <head></head> của trang web: Ví dụ: <html> <head> <title>Chen CSSCách 1</title> <style type="text/css"> //Nội dung CSS đặt bên trong đây </style> </head> <body> </body> </html> Cách 2: Chèn trực tiếp vào bên trong thẻ HTML Chèn trực tiếp CSS vào bên trong các thẻ mở của HTML. Nếu có nhiều thuộc tính cần quy định, ta ngăn cách giữa chúng bằng
khoảng trắng. Ví dụ: Ở đây ta chèn CSS vào thẻ mở của cặp thẻ . <html> <head> <title>Chen CSSCách 2</title> </head> <body>
</body> </html> 7
Cách 3: Liên kết với một file *.css bên ngoài Đây là cách được dùng nhiều nhất trong sử dụng CSS vì tính tiện dụng và linh hoạt của nó. Giả sử, bạn có một website gồm hàng trăm trang, khi bạn muốn thay đổi một chút cách trình này của website, thay vì gạch cạch đi gõ từng trang một, bạn chỉ cần sửa file CSS bên ngoài một chút, hàng trăm trang web của bạn đều được thay đổi. Cú pháp: Thực hiện liên kết bằng thẻ <link>( Không có tag đóng ), theo cú pháp sau: <link rel="stylesheet" href="Đường dẫn đên file .css" type="text/css" /> Tag này được đặt trong cặp tag <head></head> của trang web, và không cần đặt trong tag <style></style> Nếu bạn đặt file *.css cùng thư mục với trang web, thì trong thuộc tính href bạn chỉ cần viết: href=" Nếu file *.css không cùng thư mục với trang web: Bạn cần chỉ trong đường dẫn tuyệt đối tới file *.css đó trong thuộc tính href Ví dụ:
<html> <head> <link rel="stylesheet" href="style.css" type="text/css" /> </head> <body> </body> </html> 1.2.3 Một số thuộc tính thường dùng trong css Thuộc tính background border bordercollapse borderspacing 8
Ví dụ Mô tả background: #ff0000; Định dạng nền (background) cho thành phần. border: 1px solid Định dạng đường viền cho thành phần. #ff0000; bordercollapse: Thuộc tính bordercollapse xác định đường collapse; borderspacing: 10px;
viền củatable có tách biệt ra hay không. Xác định khoảng cách giữa các đường viền của các cột lân cận.
bottom captionside clear clip
bottom: 10px;
được định vị trí. captionside: bottom; Xác định vị trí một chú thích của table. Xác định 2 bên của phần tử (left, right), nơi clear: both; mà phần tử float không được cho phép. clip: Xác định đoạn cho thành phần khi sử dụng
thuộc tính position có giá trị "absolute". Xác định màu sắc cho text. Sử dụng kèm với bộ chọn ":before", ":after" để chèn nội dung được tạo. Gia tăng một hoặc nhiều counter (sắp xếp có
thứ tự, có hiển thị số) Tạo hoặc reset một hoặc nhiều counter. Xác định kiểu con trỏ chuột được hiển thị. Xác định hướng cho văn bản. Xác định loại hiển thị của thành phần. Xác định có hay không có đường viền và nền trong một cột rỗng của table Xác định có hay không một thành phần được
float. font: 12px arial,sansThiết lập font cho thành phần, bao gồm font
chữ, độ rộng,... Thiết lập chiều cao của thành phần. Thiết lập chiều cao giữa các dòng. Thiết lập chiều cao tối thiểu của thành phần.
1.3 PHP (Hypertext Preprocessor) 1.3.1 Giới thiệu về PHP 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
9
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. 1.3.2 Tại sao nên sử dụng PHP PHP được sử dụng rộng rãi, miễn phí, cấu hình nhanh chóng, nhỏ gọn. PHP có khả năng đạt hiệu suất cao trong làm việc. PHP có tính khả chuyển, một ứng dụng dù được phát triển trên Windows vẫn có thể chạy bình thường trên PHP là một dự án mã nguồn mở. Ngôn ngữ này được phát triển bởi một đội ngữ những người tình nguyện trên toàn cầu. 1.3.3 Một số thuộc tính thường dùng trong PHP a.Biến, hằng số, kiểu dữ liệu trong PHP Kiểu dữ liệu Các kiểu dữ liệu khác nhau chiếm các lượng bộ nhớ khác nhau và có thể được xử lý theo cách khác nhau khi chúng được thao tác trong một script. Trong ngôn ngữ lập trình PHP chúng ta có 6 kiểu dữ liệu chính như sau: Kiểu Dữ Liệu Integer Double
5 7.343
String
How are you?
Boolean Object Array
Ví dụ
Mô tả Là Kiểu số nguyên Kiểu số thực Một tập hợp các ký
tự True of False Giá trị true hoặc false Kiểu hướng đối tượng trong PHP Kiểu mảng trong PHP
Hằng số Hằng là những giá trị không đổi. Chúng ta thường dùng hằng để lưu các giá trị không đổi trong suốt chương trình. Khai báo hằng: Ta dùng define() để khai báo hằng. Ví dụ: define(“version”,4); Hàm define(): dùng để kiểm tra xem một hằng nào đó đã được khai báo chưa. Biến và giá trị logic
10
PHP không có khái niệm TRUE hoặc FALSE. Các giá trị TRUE được hiểu là những giá trị bằng 1, và giá trị FALSE là những giá trị bằng 0 hoặc xâu rỗng. Khi sử dụng biến chúng ta không cần khai báo kiểu. Nếu như thực hiện phép toán có kiểu số và kiểu string. PHP sẽ coi chuỗi là một dãy như sau: $str =”222 B Baker Street”; Ta thấy biến $str có kiểu string, và nếu cộng số 3 với giá trị này thì: $x = 3 + $str; // $x = 225 Khi đó $x nhận được giá trị 225 vì PHP đã cộng 3 với 3 số đầu. Nhưng nếu ta in giá trị của $str thì: Echo $str;// print:”222 B Baker Street b.Các toán tử Toán tử số học Tên Phép cộng Phép trừ Phép nhân Phép chia Phép chia lấy dư
Ký hiệu + * / %
Phép gán
Ví dụ: $x = 1; $y = $x + 1; 11
Mô tả Cộng hai số hạng Trừ hai số hạng Nhân hai số hạng Chia hai số hạng Chi lấy dư
Ví dụ $a + $b $a $b $a * b $a / $b 5 % 2 = 1
Toán tử so sánh Tên
Ký hiệu
So sánh bằng
==
So sánh khác
!=
So sánh lớn hơn > So sánh nhỏ hơn < Lớn hơn hoặc bằng >= Nhỏ hơn hoặc bằng <= Tên
Ký hiệu
Phép và
&& hoặc and
Phép hoặc
|| hoặc or
Phủ định
!
Mô tả Ví dụ Hai số hạng bằng $a == $b nhau Hai số hạng khác
$a != $b nhau So sánh lớn hơn $a > b So sánh nhỏ hơn $a < $b Lớn hơn hoặc bằng $a >= $b Nhỏ hơn hoặc bằng $a <= $b Toán tử logic
Mô tả Ví dụ Cả 2 vế phải thoả mãn$a > $b && $a >
điều kiện $c Một trong 2 thoả mãn $a > $b || $a < $c điều kiện là được Phủ định 1 điều kiện, $a != b giá trị nào đó
Các phép toán với biến kiểu string Ta sử dụng dấu “.” để ghép 2 biến kiểu string với nhau. Để có thể chèn một biến vào trong toán hạng có kiểu string thì tên biến phải để trong dấu đóng mở ngoặc nhọn. Echo (“${last} ‘bycycles”); c.Các câu lệnh điều khiển Lệnh If_else: đây là lệnh rẽ nhánh có điều kiện
Dạng 1: If (biểu thức) câu lệnh; Câu lệnh ở đây tương đương với một khối lệnh. Một khối lệnh được đặt trong dấu ngoặc kép. Dạng 2: If (biểu thức) câu lệnh 1; else 12
câu lệnh 2; Câu lệnh switch: là câu lênh rẽ nhánh có điều kiện trong đó thực hiện 1 trong n cái rẽ nhánh. Switch(biểu thức n) { Case n1; Câu lệnh 1; Break; ... Case nn; Câu lệnh nn; [defaulf: câu lệnh] } Câu lệnh FOR: là lệnh tạo chu kì có điều kiện. Dạng lệnh: for(bt1;bt2;bt3) { Câu lệnh; } Câu lệnh WHILE: là một lệnh tạo chu trình có điều kiện, điều kiện được kiểm tra
ở đầu chu trình. While (biểu thức) Câu lệnh; Lênh DO ... WHILE: là một lệnh tạo chu trình có điều kiện, trong đó điều kiện thực hiện chu trình được kiểm tra cở cuối chu trình. Dạng lệnh: Do { Câu lệnh; } While(biểu thức); d.Hàm trong PHP Quy tắc xây dựng hàm 13
Function tên_ham(danh sách đối số hình thức){ Thân hàm }
Định nghĩa hàm không nhất thiết phải nằm ngoài thân mọi hàm, trong hàm có thể có hàm khác. Nhưng việc sử dụng một hàm không khác nhau giữa xây dựng hàm trong thân một hàm và ngoài một hàm.
Tên hàm tùy đặt và khác tên hàm chuẩn.
Hàm có thể có giá trị trả về hoặc không.
Các câu lệnh được quyền gọi bất kì hàm nào đã được khai báo và đã được
định nghĩa. Return: + Trả một giá trị về cho nơi gọi hàm. + Là nơi báo kết thúc hàm. Gọi hàm + Hàm phải được xây dựng trước khi gọi. + Khi gọi hàm, nếu có giá trị trả về thường được đặt trong biểu thức. Biến toàn cục và biến cục bộ Thông thường PHP coi các biến được sử dụng trong thân của hàm là biến cục bộ. Nghĩa là biến trong thân hàm không làm thay đổi giá trị của biến ở ngoài hàm đó. Muốn làm thay đổi giá trị của biến ta cần khai báo global trước biến đó trong thân hàm. e.Biến mảng trong PHP Mảng một chiều Mảng là một biến bao gồm nhiều phần tử có cùng tên nhưng khác nhau về chỉ số (các chỉ số này tăng dần từ 0 đến n). Các phần tử của mảng không nhất thiết phải cùng kiểu. + Khai báo mảng 1 chiều: Ta có thể khai báo mảng bằng cách gán tên mảng với dấu đóng mở ngoặc vuông không có chỉ số Ví dụ: $mang[] = “ab”; 14
$mang[] = “ef”; Ví dụ trên tạo ra một mảng gồm 2 phần tử có chỉ số là 0 và 1. Việc đó cũng tương tự như gán: $mang[0] = “ab”;
$mang[1] = “ef”; Ngoài ra các chỉ số của mảng không nhất thiết phải tăng dần mà có thể được khai báo như sau: $mang[50] = “ab”; $mang[20] = “ef”; Khi đó để thêm một phần tử mới vào mảng chúng ta có thể viết: $mang[] = “uk”; //chỉ số sẽ là 51 Một phần tử mới được thêm vào với chỉ số lớn nhất của mảng cộng thêm 1. Ngoài ra cũng có thể khai báo mảng một chiều bằng câu lênh array. $mang = array(“ab”, “ef”); Mảng hai chiều Ta có thể khai báo mảng hai chiều như sau: $mang = array(“europs” => (“de”, “uk”), “north america” =>(“ca”, “cr”, “us”)); Echo ($mang[“europs”][1]); Ta có cấu trúc của mảng trên như sau: $mang[“eu rops”] [0] “de”
$mang[“north america”] [1] “uk”
[0] “ca”
[1] “cr”
[2] “us”
f. Lập trình hướng đối tượng Định nghĩa lớp Chúng ta có thể định nghĩa lớp bằng toán tử class, và trong mỗi một lớp chúng ta sẽ xây dựng các phương thức và thuộc tính cho lớp đó. Giả sử muốn xây dựng lớp “sesion” chúng ta làm như sau: Class sesion 15
{ //Định nghĩa các thuộc tính và phương thức // Xây dựng các phương thức cho lớp //Kết thúc một lớp } ?> Để định nghĩa thuộc tính cho lớp, chúng ta đặt từ khóa var trước thuộc tính đó. Class sesion { Var $splhost = “localhost”; ... //Định nghĩa các phương thức ở đây //Kết thúc định nghĩa lớp } ?>
Tiếp theo chúng ra sẽ định nghĩa các phương thức cho lớp trên. Phương thức cần xây dựng đầu tiên là sesion(), sau đó đến các phương thức khác. //Định nghĩa lớp session Class sesion { //Định nghĩa các thuộc tính ... // Định nghĩa các phương thức Function sesion($localseshID,$localuserID = 0) { $this>seshid = $localseshid; $this>userid = $localuserid; // Kết nối với mysql 16
$this>linked = mysql_connect($this>sqlhost,$this>sqluser,$this>sqlpass); If(!$this>linked) { $this>err = mysql_error(); $this>error_no = 102; } } } ?> Sử dụng lớp đã được định nghĩa Để khai báo một đối tượng có kiểu thuộc tính lớp đã xây dựng ta dùng toán tử new nhưu sau:
Require(“classes/sesion.php”);//include class; $mysesh = new session($seshid); If ($mysesh>error_no) { //Thông báo lỗi } $user = $mysesh>sessdata(userid); ?> <html> <head> <title>Chào mừng bạn tới website của tôi, <? Echo $user; ?></title> </head> <body> next page</a> <FORM action=”nextpage.php” METHOD=”POST”> </FORM> 17