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

: Xây Dựng Website bán Giấy Dán Tường

73 674 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Website Bán Giấy Dán Tường
Tác giả Bùi Mạnh Khiêm
Người hướng dẫn Ths. Phan Hữu Trung
Trường học Trường Đại Học Xây Dựng Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2010
Thành phố Hà Nội
Định dạng
Số trang 73
Dung lượng 5,41 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trên cơ sở muốn tìm hiều về Web và ứng dụng của Web, cũng như những phát triển của nó, em thực hiện đề tài: “Nghiên cứu jsp & java – Xây Dựng Website bán

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

  

-Đồ án tốt nghiệp

Đề tài : Xây Dựng Website bán

Giấy Dán Tường

Giáo viên hướng dẫn : Ths Phan Hữu Trung

Sinh viên thực hiện : Bùi Mạnh Khiêm - 516251 Lớp quản lý : 51PM1

Hà Nội 05/2010

Trang 2

Lời cám ơn

Mạng internet tốc độ cao ADSL xuất hiện ở Việt Nam chỉ vài năm gần đây nhưng ảnh hưởng của nó tới cuộc sống và lối sống của người Việt rất rõ ràng Internet đã thành một thứ không thể thiếu với cộng đồng từ nhà nước tới người dân, từ người già tới giới trẻ Internet mang tới một kênh thông tin truyền thông hiệu quả tới người sử dụng.Kéo theo sự phát triển đó là thương mại điện tử Thương mại điện tử là một lĩnh vực mới đang được nhiều cơ quan, nhiều công ty, đoàn thể cũng như cá nhân nghiên cứu

và phát triển nhằm đưa các thiết bị, các ứng dụng liên quan đến điện tử tin học vào phục vụ cho sự phát triển kinh doanh Thương mại điện tử của Việt Nam phát triển đi kèm với sự phát triển của lượng khách hàng Khách hàng của các trang thương mại điện tử của Việt Nam hiện nay phần lớn là giới trẻ, họ trao đổi, buôn bán với nhau các vật dụng công nghệ cao như điện thoại, máy vi tính, sách vở tạp chí thậm chí là quần áo, đồ dùng gia đình Đó là lý do em thực hiện đồ án tốt nghiệp xây dựng websitebán hàng trực tuyến này

Trên cơ sở muốn tìm hiều về Web và ứng dụng của Web, cũng như những phát triểncủa nó, em thực hiện đề tài: “Nghiên cứu jsp & java – Xây Dựng Website bán

Giấy Dán Tường” Bước đầu nghiên cứu, hiện thực với kiến thức, khả năng và thờigian có hạn, đồ án này chắc chắn sẽ không tránh khỏi những thiếu sót, rất mong đượcthầy cô và các bạn góp ý để có thể hoàn chỉnh hơn trong quá trình nghiên cứu sau này

Em xin chân thành cảm ơn sự giúp đỡ tận tình của các thầy có trong suốt quá trìnhthực tập và làm đồ án tốt nghiệp, đặc biệt là Ths Phan Hữu Trung người đã trực tiếphướng dẫn em trong toàn bộ quá trình thực hiện để hoàn thành đồ án tốt nghiệp này

Trang 3

Ph l c ụ ụ

Phần 1 Giới thiệu tổng quan 3

1.1 Đặt vấn đề 3

1.2 Công nghệ sử dụng 4

1.3 Chức năng của website 4

Phần 3 Phân tích và thiết kế 6

3.1 Chức năng của hệ thống 6

3.1.1 Khách ghé thăm website 6

3.1.2 Chức năng thành viên 7

3.1.3 Chức năng của admin 7

3.2 ERD 8

3.3 Thiết kế cơ sở dữ liệu 10

3.3.1 Bảng tin tức (news) 11

3.3.2 Bảng comments 11

3.3.3 Bảng sản phẩm(products) 11

3.3.4 Bảng nhà cung cấp(suppliers) 12

3.3.5 Bảng nhóm sản phẩm(categories) 12

3.3.6 Chi tiết hóa đơn(cart_detail) 13

3.3.7 Hóa đơn(Cart) 13

3.3.8 Người dùng(customer) 14

Phần 4 Thiết kế giao diện và cài đặt chương trình 14

4.1 Tổng quát về công nghệ và công cụ sử dụng 14

4.1.1 Tổng quát về PHP 14

4.1.2 Cú pháp của PHP 18

4.1.3 Tổng quát về MySQL Server 23

4.1.4 Tổng quát về Ajax 24

4.2 Framework symfony 29

4.2.1 Giới thiệu 29

4.2.2 Cài đặt symfony 31

4.2.3 Cài đặt Project 33

Trang 4

4.2.4 Tạo Application 34

4.2.5 Cài đặt Web server 36

4.2.6 Phát triển một dự án với symfony 39

4.3 Giao diện và các chức năng của chương trình 61

4.2.1 Giao diện chính 61

4.3.3 Trang đăng ký thành viên 62

4.3.4 Đăng Nhập 62

4.3.4.1Trang giỏ hang 64

4.3.5 Đặt Hàng 64

4.3.6 Thông kê những đơn hàng đã đặt 65

4.3.7 Hình ảnh một số mẫu giấy dán tường 65

4.3.8 Trang tin nội thất 66

4.3.9 Trang quản trị 67

4.3.10 Trang quản lý tin tức 67

4.3.11 Quản lý sản phẩm 68

4.3.12 Trang quản lý người dùng 68

4.3.13 Trang quản lý hóa đơn 69

4.3.14 Trang quản lý hình ảnh 69

4.3.15 Trang nhóm sản phẩm 70

Phần 5 Kết luận 70

5.1 Những điều đã làm được : 70

5.2 Hạn chế: 71

5.3 Hướng phát triển : 71

5.4 Tài liệu tham khảo 71

Trang 5

Phần 1 Giới thiệu tổng quan

1.1.Đặt vấn đề

Ngày nay thương mại điện tử đã dần trở nên quen thuộc với người tiêu dùng bởi nó đã xoá dần mọi khoảng cách giữa người bán và người mua Thương mại điện tử đã làm cho việc mua bán giao dịch giữa người bán và người mua trở lên đơn giản hơn bao giờhết Thay vì phải gặp trực tiếp, mọi hoạt động sẽ diễn ra thông qua Internet

Các hình thức được biết đến nhiều nhất của thương mại điện tử là mua bán trực tuyến cũng như mua bán đấu giá thông qua Internet Thông qua việc Internet bùng nổ vào cuối thập niên 90, cửa hàng trực tuyến ngày càng có tầm quan trọng nhiều hơn Nhữngngười bán hàng thông qua Internet có lợi thế là họ không cần đến một diện tích bán hàng thật sự mà thông qua các trang Web sử dụng một không gian bán hàng ảo Các cửa hàng trực tuyến thường không cần đến nhà kho hay chỉ cần đến rất ít, vì thường cóthể cung cấp cho khách hàng trực tiếp từ người sản xuất hay có thể đặt hàng theo nhu cầu Lợi thế do tiết kiệm được các phí tổn cố định này có thể được chuyển tiếp cho khách hàng, đó là việc khách hàng sẽ được giảm chi phi vận chuyển so với cửa hàng

cố định

Kênh bán hàng trực tuyến còn giúp người bán giảm một số chi phí Thứ nhất, với cửa hàng trực tuyến, người bán có thể cập nhật giá và các thông tin khác liên tục, không phải in catalogue (đã in ra thì không thay đổi được) Thứ hai, cửa hàng truyền thống thường giới hạn về diện tích, trong khi với cửa hàng trực tuyến, người bán có thể giới thiệu tất cả sản phẩm mà không lo hết chỗ

Trong những năm gần đây, Đảng và Nhà Nước ta đánh giá cao tiềm năng phát triển của thương mại điện tử và đang đầu tư rất lớn cho thương mại điện tử Đầu năm 2007, chính phủ Việt Nam đă ban hành Nghị định số 27/2007/NĐ-CP ngày 23/02/2007 “Quyđịnh chi tiết thi hành Luật giao dịch điện tử về chữ ký số và dịch vụ chứng thực chữ kýsố”, số 35/2007/NĐ-CP ngày 08/03/2007 “ Về giao dịch điện tử trong hoạt động ngân hàng”

Hiện nay, các mô hình kinh doanh qua hệ thống e-Commerce ngày càng đa dạng Từthực tế này, ứng dụng Web tự động hóa quy trình quản lý và bán hàng trực tuyến (WebQLBHTT) được thiết kế phù hợp với mọi mô hình kinh doanh trên Internet Cùng với

Trang 6

sự phát triển mạnh mẽ của Internet thì mọi giao dịch, hoạt động buôn bán đều có thểđược thực hiện thông qua Internet Một cửa hàng bán sản phẩm điện thoại sẽ hoàn toàn

có thể được thay thế bằng một Website mà ở đó mọi người có thể mua bất cứ sảnphẩm điện thoại yêu thích ngay cả khi ngồi ở nhà hay ở nơi làm việc

1.2.Công nghệ sử dụng

- Ngôn ngữ xây dựng website : PHP

- Ngoài ra sử thêm các open source : CkEditor, Jquery

- Cơ sở dữ liệu : My SQLServer download tại MySQL Home page :

http://www.mysql.com/downloads/mysql/ , MySQL Workbench (GUI Tool) download : http://www.mysql.com/downloads/workbench/

1.3.Chức năng của website

Chức năng của website :

1.3.1 Chức năng giỏ hàng

- Khách hàng ghé thăm website có thể tìm kiếm để chọn hàng tùy thích

- Khách hàng có thể thêm, xóa, cập nhật số lượng hàng mà họ muốn mua

1.3.2 Chức năng quản lý thành viên

- Người quản lý có thể thêm một thành viên, sửa thông tin của thành viên, xóathông tin của thành viên

- Người quản lý có thể tìm kiếm thông tin về thành viên theo : Tên đăng nhập,Email

Trang 7

1.3.5 Chức năng quản lý tin tức

- Người quản lý có thể thêm hay sửa thậm chí xóa thông tin về một bản tin

- Về phần tìm kiếm : người quản lý có thể tìm kiếm tin tức theo tiêu đề tin, nguồntin

1.3.6 Quản lý hóa đơn

- Người quản lý có thể xử lý hóa đơn nếu nó hợp lệ và cũng có thể xóa hóa đơnkhông hợp lệ

- Người quản lý có thể tìm kiếm hóa đơn theo: Tên người nhận, Email của ngườinhận

Trang 8

Mô tả Cho phép khách hàng có thể xem tin tức

Đầu vào Lựa chọn mục tin tức muốn xem

Xử lý Lấy thông tin từ database

Đầu ra Hiển thị thông tin được yêu cầu

3.1.1.2 Tìm kiếm thông tin

Mô tả Cho phép khách hàng có thể tìm kiếm thông tin về sản phẩm

Đầu vào Lựa chọn mục cần search và nhập vào từ khóa

Xử lý Lấy thông tin từ database

Đầu ra Hiển thị thông tin được yêu cầu

3.1.1.3 Đăng ký thành viên

Mô tả Cho phép thành viên đăng ký để trở thành thành viên của website

Đầu vào Tên, tuổi, giới tính, ngày sinh, địa chỉ , email, số điện thoại

Xử lý - Kiểm tra tính hợp lệ của dữ liệu

- Check register

- Insert Database

Đầu ra - Nếu dữ liệu đưa vào là ko hợp lệ thì đưa ra thông báo không

thành công và ngược lại

Trang 9

3.1.2 Chức năng thành viên

3.1.2.1 Quản lý thông tin cá nhân

Mô tả Quản lý toàn bộ thông tin cá nhân

Đầu vào Cật nhập thông tin cá nhân

Xử lý Thêm sửa xóa thông tin

Đầu ra Hiển thị thông tin

3.1.2.2 Đặt hàng online

Mô tả Khách hàng ghé thăm website có thể chọn và đặt mua sản phẩm

Đầu vào Lựa chọn các sản phẩm cần mua và số lượng

Xử lý Lưu thông tin giỏ hàng

Đầu ra Hóa đơn thanh toán

3.1.3 Chức năng của admin

3.1.3.1 Quản lý thành viên

Mô tả Quản lý toàn bộ thành viên và cấp quyền

Đầu vào Cật nhập thông tin các thành viên

Xử lý Thêm sửa xóa thông tin của thành viên

Đầu ra Hiển thị thông tin của thành viên

3.1.3.2 Quản lý sản phẩm

Mô tả Quản lý toàn thông tin về sản phẩm

Đầu vào Cật nhập thông tin cho sản phẩm

Xử lý Thêm sửa xóa thông tin của sản phẩm

Đầu ra Hiển thị thông tin của sản phẩm

Trang 10

3.1.3.3 Quản lý hóa đơn

Mô tả Quản lý toàn bộ các hóa đơn

Đầu vào Hóa đơn của khách hàng

Xử lý Quản lý trạng thái của hóa đơn

Đầu ra Hiển thị thông tin về hóa đơn của khách hàng

3.1.3.4 Quản lý tin tức

Mô tả Quản lý toàn bộ tin tức của web

Đầu vào Cật nhật thông tin cho tin tức

Xử lý Thêm sửa xóa tin tức

Đầu ra Hiển thị tin tức

3.2 ERD

Trang 11

Suppliers

Users Products

Carts

News comments

n

n 1

n

n 1

1

1

n 1

n 1

Trang 12

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

Trang 13

3.3.1 Bảng tin tức (news)

FieldName Data Type Data length Constraint Description

3.3.2 Bảng comments

FieldName Data Type Data length Constraint Description

phẩm

lời bình

3.3.3 Bảng sản phẩm(products)

FieldName Data Type Data

length Constraint Description

Trang 14

prod_name Varchar 50 Tên sản phẩm

product_price

sản phẩm

3.3.4 Bảng nhà cung cấp(suppliers)

FieldName Data Type Data length Constraint Description

cấp

cung cấp

3.3.5 Bảng nhóm sản phẩm(categories)

FieldName Data Type Data length Constraint Description

Trang 15

3.3.6 Chi tiết hóa đơn(cart_detail)

FieldName Data Type Data length Constraint Description

cart_detail_id int(11) Primary key Mã chi tiết

FieldName Data Type Data length Constraint Description

Trang 16

3.3.8 Người dùng(customer)

FieldName Data Type Data length Constraint Description

nhập

Phần 4 Thiết kế giao diện và cài đặt chương trình 4.1 Tổng quát về công nghệ và công cụ sử dụng

4.1.1 Tổng quát 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úngvà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ìnhweb phổ biến nhất thế giới

PHP là một công nghệ phía máy chủ (server-side) và không phụ thuộc môitrường (cross-platform) Cả hai yếu tố này đều rất quan trọng Khái niệm công nghệ

Trang 17

phía máy chủ nói đến việc mọi thứ trong PHP đều xảy ta trên máy chủ (ngược với máykhách là máy người dùng) Tính chất không phụ thuộc môi trường cho phép PHP chạytrên hầu hết các hệ điều hành như Windows , Unix (và nhiều biến thể của nó),Macintosh Một điều cũng rất quan trọng là các mã kịch bản PHP viết trên máy chủnày sẽ làm việc bình thường trên các máy chủ khác mà không cần chỉnh sửa hoặcchỉnh sửa rất ít.

PHP được sử dụng để phát triển Website động vì nó tốt, nhanh và dễ dàngnghiên cứu hơn các giải pháp khác PHP có khả năng thực hiện và tích hợp chặt chẽvới hầu hết các cơ sở dữ liệu có sẵn, tính bền vững, linh động và khả năng phát triểnkhông giới hạn Tất cả các đặc tính trên đều miễn phí vì PHP là mã nguồn mở PHPvừa dễ với người mới sử dụng, vừa có khả năng làm được mọi thứ, đáp ứng yêu cầucủa lập trình viên chuyên nghiệp PHP được sử dụng ngày càng nhiều và là môđunthông dụng cho Apache (máy chủ Web phổ biến nhất)

Đoạn mã sau minh họa giúp cách viết PHP lồng vào các trang HTML dễ dàngnhư thế nào:

<! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd" >

< html >

< head >

< meta http-equiv ="Content-Type" content ="text/html; charset=UTF-8">

< title >Xin chào</ title >

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 PHPgiú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ầngiao diện ứng dụng HTTP

1- Lý do chọn php

Khi sử dụng PHP, người dùng sẽ có được tốc độ nhanh hơn nhiều so với các ngônngữ kịch bản khác, bởi PHP là phần mềm mã nguồn mở, được hỗ trợ bởi nhiều lập

Trang 18

trình viên giỏi, có số lượng người dùng đông đảo Ngoài ra PHP chạy được trên nhiều

hệ điều hành khác nhau

Rút ngắn thời gian phát triển

- PHP cho phép bạn tách phần HTML code và phần script, do đó có thể độc lập giữacông việc phát triển mã và thiết kế Điều này vừa giúp lập trình viên dễ dàng hơnvừa có thể làm cho chương trình mềm dẻo hơn trong việc thay đổi giao diện

PHP là phần mềm mã nguồn mở

- PHP không chỉ là phần mềm mã nguồn mở mà còn thực sự miễn phí (kể cả khi bạn

sử dụng cho mục đích thương mại)

- Do là phần mềm mã nguồn mở, các lỗi (bug) của PHP được công khai và nhanhchóng được sửa chữa bởi nhiều chuyên gia

2- Zend engine

Zend là scripting engine nằm bên trong PHP Zend Engine thực sự là sự cải tiến đáng

kể Hầu hết các đoạn mã viết trên PHP3 đều có thể chạy trên PHP4 với tốc độ tăng gấp

200 lần

3- Cài đặt php

Bạn có thể tìm phiên bản mới nhất của PHP tại địa chỉ http://www.php.net

PHP là phần mềm mã nguồn mở, bạn có thể download cả mã nguồn của PHP

Bạn có thể tìm tài liệu tham khảo của PHP tại địa chỉ http://www.php.net/manual

Cài đặt PHP với IIS

Control Panel/Add Remove Programs/Add Remove Window Components

Bật Internet Information Services

Download PHP Installer (Windows Binaries) từ http://www.php.net/downloads.php

Cài đặt PHP (chọn server IIS)

Trang 19

Cài đặt Apache

Download Apache tại http://httpd.apache.org/

Cài đặt Apache

Download bản PHP zip package (Window Binaries)

Giải nén vào thư mục C:\PHP

Sửa file conf/httpd.conf, thêm vào nội dung sau

ScriptAlias /php/ "c:/php/"

AddType application/x-httpd-php php

Action application/x-httpd-php "/php/php.exe"

Hoặc (Copy php5ts.dll vào thư mục c:/windows/system32)

LoadModule php5_module "c:/php/sapi/php5apache2.dll"

AddType application/x-httpd-php php

Thêm alias (vào trong httpd.conf)

Alias fake “realname”

a Macromedia DreamWaver

b Nusphere PHPED

c Zend Studio

Trang 20

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 …

Trang 21

- 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ấugạ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ườilập trình mong muốn trên chúng

Một số ví dụ về biến :

<?php

$a = 100; // biên hợp lệ

$a = “hello”; // biến hợp lệ

a = “hello”; // có lỗi vì không có $

$123 = “hello”; //có lỗi vì biến bắt đầu bằng số

?>

b) Khái niệm về hằng trong PHP.

Nếu biến là cái có thể thay đổi được thì ngược lại hằng là cái chúng ta không thể thay đổi được

- Định nghĩa hằng bằng cách sử dụng hàm define()

- Phạm vi của hằng là toàn cục (global)

- Chỉ có các dạng dữ liệu đơn giản (boolean, interger, float, string)

- Nếu tên hằng chưa được định nghĩa, PHP giả thiết rằng bạn đang sử dụng 1 hằng chứa giá trị là 1 string (chính là tên của hằng đó)

- Để xác định một hằng đã được định nghĩa hay chưa, bạn có thể sử dụng hàm defined

Trang 22

Cũng giống với biến hằng được xem là hợp lệ thì chúng phải đáp ứng 1 số yếu tố :

- Hằng không có dấu "$" ở trước tên

- Hằng có thể truy cập bất cứ vị trí nào trong mã lệnh

- Hằng chỉ được phép gán giá trị duy nhất 1 lần

- Hằng thường viết bằng chữ in để phân biệt với biến

c) Khái niệm về string trong PHP.

String trong PHP là một chuỗi các ký tự 1 byte PHP không hỗ trợ Unicode, để làm việc với Unicode bạn phải sử dụng UTF8 với các hàm utf8_encode() – utf8_decode()

String của PHP hỗ trợ chiều dài rất lớn (?)

Trong PHP, string được xác định theo 3 cách

Dấu nháy đơn (single quote)

Dấu nháy kép (double quote)

Heredoc

Truyền biến trong string

Truyền kiểu đơn giản

Truyền kiểu phức

Truy cập đến từng ký tự trong string

Các toán tử trên string

Ví dụ :

<?php

echo ‘this is a sample string’; // kiểu nháy đơn

echo “this is a sample string”; // kiểu nháy kép

// kiêu heredoc

$str = <<<EOA

Example of string <br>

spanning multiple lines<br>

using heredoc syntax.<br>

EOA;

echo($str);

?>

Trang 23

d) Các kiểu dữ liệu trong php

Trong php chúng ta có 6 kiểu dữ liệu sau:

3- Sử dụng php để kết nối cơ sở dữ liệu

Có 2 cách kết nối PHP với CSDL

- Sử dụng các hàm riêng cho từng loại CSDL

Ưu điểm: Tốc độ cao do được thiết kế cho từng CSDL cụ thể Tận dụng được ưu điểmcủa từng loại CSDL

Nhược điểm: Không có tính khả chuyển giữa các CSDL

- Sử dụng các hàm độc lập CSDL (thư viện PEAR DB)

Ưu điểm: Có thể sử dụng trên nhiều CSDL khác nhau

Nhược điểm: Chậm hơn phương pháp trên, không tận dụng được ưu điểm của từngCSDL

Cài đặt thư viện PEAR

– Yêu cầu: PHP phiên bản 5.0

- Cấu hình Zend Studio để làm việc với PEAR DB

– Thêm vào file $Zend_dir/bin/php5/php.ini 2 dòng

include_path=".;C:/php/pear"

extension_dir="c:/php/ext"

Trang 24

– Copy file libMySQL.dll vào $Windows/$System (nếu bạn sử dụng IIS)Cài IIS, cài Mysql 5.0, cài PHP

Copy $\Mysql\bin\libMysql.dll đến c:\windows\system32

Copy PHP.rar đè lên thư mục c:/PHP

Sửa nội dung c:\windows\system32\PHP.INI, thêm vào các dòng sau (để ở cuối file)

Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có

sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển cốt lõi của PHP lậpnên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy môdoanh nghiệp

Trang 25

4.1.3 Tổng quát về MySQL Server

MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới (nằmtrong nhóm LAMP: Linux - Apache -MySQL - PHP) và được các nhà phát triển rất ưachuộng trong quá trình phát triển ứng dụng Vì 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ấpmộ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, MySQLrất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàntoà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, Hiện naytrong số các Website có lưu lượng truy cập lớn thuộc hàng “top” trên Internet, có rấtnhiều Website sử dụng liên minh LAMP này ”Liên minh” mã mở LAMP đang đượccoi là một đối trọng với các sản phẩm mã đóng của Microsoft (Windows, IIS, SQLServer, ASP/ASP.NET)

Một số đặc điểm của MySQL:

 MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server của Microsoft)

 MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu

 MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL

Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu củatài khoản có quyền sử dụng CSDL đó Nếu không, sẽ không không thể kết nối và sửdụng dữ liệu trong đó

Trang 26

4.1.4 Tổng quát về Ajax

Vào những năm 90, trên thế giới, khi mà công nghệ “Web động” cho phép cáclập trình viên nhanh chóng phát triển các ứng dụng trên nền Web với khả năng tươngtác 2 chiều với người sử dụng, nhiều người đã có thể hy vọng rằng đến một lúc nào đótất cả các ứng dụng mà chúng ta sử dụng sẽ là các ứng dụng Web thay vì các phầnmềm chạy độc lập trên các máy tính đơn lẻ (ứng dụng desktop) Quả thật, với sự pháttriển chóng mặt của mạng Internet cùng với những ưu điểm của các ứng dụng Web(truy cập tại mọi nơi, không cần nâng cấp nhiều về phía máy sử dụng,…), tương laicủa các phần mềm chắc chắn sẽ gắn chặt với các ứng dụng Web, nếu không muốn nói

là có thể sẽ bị thay thế Tuy nhiên, cho đến giờ, hy vọng đó vẫn chưa được đáp ứngmột cách triệt để bởi một số điểm đặc trưng của ứng dụng Web lại chính là những giớihạn tưởng chừng như không thể vượt qua nổi Đó chính là cách thức mà người dùng

và ứng dụng Web tương tác với nhau

Khác với các phần mềm chạy độc lập ở máy khách (có khả năng tương tác gầnnhư tức thời với người dùng), các ứng dụng Web bị giới hạn bởi chính nguyên lý hoạtđộng của nó: tất cả các giao dịch phải thực hiện thông qua phương thức giao dịchHTTP (HyperText Transport Protocol - Giao thức truyền tải qua các siêu liên kết)trong một mô hình có tên Client/Server Bất kỳ một tác động nào của người dùng lênứng dụng Web thông qua trình duyệt đều cần thời gian gửi về Server và sau khi xử lý,

Trang 27

Server sẽ trả về những thông tin người dùng mong đợi Như vậy, độ trễ trong trườnghợp này chính là điều mà các ứng dụng Web khó có thể sánh với như các phần mềmchạy trên máy tính đơn lẻ (đặc biệt là trong các ứng dụng như Bản đồ trực tuyến, soạnthảo văn bản trực tuyến, sát hạch trực tuyến có tính thời gian làm bài…) Thuật ngữ AJAX được xuất hiện vào ngày 18/2/2005 trong một bài báo có tên AJAX :

A New Approach to Web Applications [1] của tác giả Jesse James Garrett, công tyAdapativePath Ông định nghĩa và tóm gọn lại từ cụm từ “AsynchronousJavaScript+CSS+DOM+XMLHttpRequest” Ngay sau đó thuật ngữ AJAX được phổbiến cực kỳ nhanh chóng trong cộng đồng phát triển Web và cho đến nay nó là mộttrong những từ khóa được tìm kiếm nhiều nhất trên Internet.Nội dung định nghĩa của Garrett về AJAX trong bài báo của mình như sau:

AJAX không phải là một công nghệ Nó là tập hợp của nhiều công nghệ với thế mạnh của riêng mình để tạo thành một sức mạnh mới AJAX bao gồm:

  1 Thể hiện Web theo tiêu chuẩn XHTML và CSS;

2 Nâng cao tính năng động và tương tác bằng DOM (Document ObjectModel);

3 Trao đổi và xử lý dữ liệu bằng XML và XSLT;

4 Truy cập dữ liệu theo kiểu bất đồng bộ (asynchronous) bằngXMLHttpRequest;

 Và tất cả các kỹ thuật trên được liên kết lại với nhau bằng JavaScript Trong các thành phần cấu thành trên, điểm mấu chốt của AJAX nằm ởXMLHttpRequest Đây là một kỹ thuật do Microsoft khởi xướng và tích hợp lần đầutiên vào IE5 dưới dạng một ActiveX Mozilla tích hợp công nghệ này vào Mozilla1.0/Netscape 6 sau đó (đương nhiên toàn bộ các version sau này của Firefox đều cóXMLHttpRequest) và hiện nay đã có trong trình duyệt Safari 1.2 (Apple) và Opera 7trở lên Các vấn đề về XMLHttpRequest và cách sử dụng nó trên các trình duyệt khácnhau sẽ được chúng ta quay trở lại ở các phần tiếp theo Sau đây là một số nét khácbiệt cơ bản giữa các ứng dụng Web truyền thống và ứng dụng Web sử dụng AJAX.Trong các ứng dụng Web truyền thống, khi người dùng có một cần thay đổi dữ liệutrên trang Web, yêu cầu thay đổi được gửi về server dưới dạng HTTP request (hay còngọi postback), server sẽ xử lý yêu cầu này và gửi trả lại trang HTML khác thay thếtrang cũ Qui trình này được mô tả là nhấp-chờ và tải lại (click-wait-and-refresh): ví dụ

Trang 28

người dùng sau khi nhấn một nút “Submit” trên trang Web phải chờ cho đến khi server

xử lý xong mới có thể tiếp tục công việc Ngược lại, trong các ứng dụng AJAX, ngườidùng có thể nhấn chuột, gõ phím liên tục mà không cần chờ đợi Nội dung tương ứngvới từng hành động của người dùng sẽ gần như ngay lập tức được hiển thị vào vị trícần thiết (đáp ứng gần như tức thời) trong khi trang Web không cần phải refresh lạitoàn bộ nội dụng Để tìm hiểu kỹ hơn điều này, ta sẽ xem xét 2 mô hình ứng dụng như[1] đã đề cập, Mô hình cổ điển và Mô hình AJAX-based:

Rõ ràng điểm khác biệt là thay vì phải tải cả trang Web thì với AJAX trình duyệtphía người dùng chỉ cần tải về phần của trang Web mà người dùng muốn thay đổi.Điều này giúp cho ứng dụng Web phản hồi nhanh hơn, thông minh hơn Ngoài ra,điểm đặc biệt quan trọng trong công nghệ AJAX nằm ở chữ A (Asynchronous) –không đồng bộ – tức là người dùng cứ gửi yêu cầu của mình tới server và quay lại vớicông việc của mình mà không cần chờ trả lời Khi nào server xử lý xong yêu cầu của

Trang 29

phía người dùng, nó sẽ báo hiệu và người dùng có thể “thu nhận lấy” để thể hiệnnhững thay đổi cần thiết Vậy tất cả cơ chế này hoạt động thực sự thế nào? AJAX chophép tạo ra một AJAX Engine nằm giữa giao tiếp này Khi đó, các yêu cầu gửi(resquest) và nhận (response) do AJAX Engine thực hiện Thay vì trả dữ liệu dướidạng HTML và CSS trực tiếp cho trình duyệt, Web server có thể gửi trả dữ liệu dạngXML và AJAX Engine sẽ tiếp nhận, phân tách và chuyển hóa thành XHTML + CSScho trình duyệt hiển thị Việc này được thực hiện trên client nên giảm tải rất nhiều choserver, đồng thời người sử dụng cảm thấy kết quả xử lý được hiển thị tức thì mà khôngcần nạp lại trang Mặt khác, sự kết hợp của các công nghệ Web như CSS và XHTMLlàm cho việc trình bày giao diện trang Web tốt hơn nhiều và giảm đáng kể dung lượngtrang phải nạp Đây là những lợi ích hết sức thiết thực mà AJAX đem lại.

Đôi nét về jQuery: jQuery là một thư viện “kiểu mới” của JavaScript hỗ trợ bạn

trong việc xử lý HTML, xử lý các sự kiện trong trang HTML, tạo các hiệu ứng đẹp, xử

lý Ajax nhanh và ngắn gọn hơn cho ứng dụng web của bạn jQuery trở thành thư việnđược lựa chọn cho các nhà phát triển web và nhanh chóng trở thành sự lựa chọn đầutiên cho các lập trình viên đang tìm cách để giảm nhẹ công việc phát triển dịch vụ phíakhách của họ và tạo ra các RIA (Rich Internet Applicatrion) một cách nhanh chóng vàhiệu quả Do việc sử dụng RIA trở nên ngày càng phổ biến trên toàn thế giới, nên việc

sử dụng các thư viện JavaScript để hỗ trợ sự phát triển của họ cũng sẽ tiếp tục tăng.RIA được định nghĩa (không rõ ràng) vì rằng các ứng dụng chạy thông qua trìnhduyệt, trình duyệt này sử dụng kết hợp của CSS/JavaScript/Ajax để tạo ra công việctrên ứng dụng của máy tính để bàn Các tính năng mới nhất, được bổ sung vào các bảnphát hành gần đây của Firefox, Internet Explorer, Safari, và bản phát hành gần đây củatrình duyệt Google Chrome mới, được tập trung vào việc tăng tốc độ của máyJavaScript nội bộ của mỗi trình duyệt nhằm mục đích duy nhất là làm cho nó trở nênthuận lợi hơn cho loại ứng dụng RIAs, loại ứng dụng mà những người tạo ra trìnhduyệt tưởng tượng là chúng ta sẽ sử dụng trong tương lai gần Các công ty này hìnhdung các trang Web có chứa hàng chục ngàn dòng mã JavaScript, cho thấy tầm quantrọng của một thư viện hoàn thiện và không có lỗi và từ đó sẽ bắt đầu mọi công việcquan trọng hơn

Cho nên, vì tương lai của các ứng dụng web đang hướng tới các giao diện nhúng

và phong phú này, nên các nhà phát triển web ngày càng chú trọng vào các công cụ để

Trang 30

giảm nhẹ các công việc Hiện giờ trên thế giới đã có một số thư viện JavaScript, mỗimột thư viện có những điểm mạnh và điểm yếu và có những người hâm mộ với lời phêbình riêng của nó jQuery đã trở thành sự lựa chọn chiếm ưu thế cho các thư việnJavaScript và sự lựa chọn đó đang tăng lên nhanh chóng

Symfony là một framework đầy đủ được thiết kế để tối ưu việc phát triển ứng dụng web bằng một vài đặc điểm chính Với những người mới bắt đầu, nó phân chia những qui tắc nghiệp vụ, server logic và phần hiển thị của ứng dụng web Nó có nhữngcông cụ và class để thu ngắn thời gian phát triển của những ứng dụng web phức tạp Thêm vào đó, nó tự động hóa những công việc thông thường để lập trình viên có thể tập trung hoàn toàn vào những đặc điểm của ứng dụng Kết quả cuối cùng của những điểm lợi này là không cần phải lặp lại (reinvent the wheel) mỗi lần tạo ứng dụng web!

Trang 31

Symfony được viết hoàn toàn bằng PHP 5 Nó đã được kiểm tra một cách hoàn hảo trong nhiều dự án thực tế khác nhau và thực sự được dùng cho những website kinhdoanh điện tử có yêu cầu cao Nó tương thích với hầu hết các loại cơ sở dữ liệu, bao gồm MySQL, PostgreSQL, Oracle, và Microsoft SQL Server Nó chạy trên hệ điều hành *nix và Windows Hãy bắt đầu xem xét những tính năng của nó

Những tính năng của Symfony

Symfony được xây dựng để thực hiện các yêu cầu sau:

- Dễ cài đặt và cấu hình trên hầu hết các hệ điều hành (và được bảo đảm làm việc trên các hệ điều hành chuẩn *nix và Windows)

- Độc lập với hệ cơ sở dữ liệu

- Dễ dùng trong hầu hết các trường hợp nhưng vẫn đủ mềm dẻo để thích nghi với những trường hợp phức tạp

- Hoạt động theo cấu hình định trước lập trình viên chỉ cần cấu hình trong những trường hợp riêng biệt

- Tuân theo những hoạt động và mẫu thiết kế tốt nhất

- Sẵn sàng cho môi trường xí nghiệp thích nghi với những chính sách và kiến trúccông nghệ thông tin và đủ ổn định cho những dự án dài hạn

- Mã rất dễ đọc, với những chú thích kiểu phpDocumentor, dễ dàng bảo trì

- Dễ dàng mở rộng, cho phép tích hợp với những thư viện khác

Những tính năng dự án web được tự động Hầu hết các chức năng thông thường của những dự án web được tự động trong symfony, như sau:

- Lớp internationalization có sẵn cho phép phiên dịch giao diện, dữ liệu cũng như làcontent localization

- Phần presentation sử dụng template và layout có thể được xây dựng bởi người thiết kế HTML mà không cần có kiến thức về framework Các helper làm giảm số lượng mã presentation phải viết bằng cách tóm gọn các phần của mã vào những

function đơn giản

- Các form hỗ trợ kiểm tra và điền tự động, và điều này đảm bảo chất lượng tốt của

dữ liệu trong cơ sở dữ liệu và kinh nghiệm người sử dụng tốt hơn

- Việc escape output bảo vệ các ứng dụng khỏi những tấn công thông qua dữ liệu bịhỏng

- Những tính năng quản lý cache giúp giảm lượng băng thông và tải của máy chủ

Trang 32

- Những tính năng phân quyền và xác nhận giúp việc tạo các quản lý những mục hạn chế và bảo mật người dùng dễ dàng hơn

- Việc định hướng và các URL thông minh làm cho phần địa chỉ của các trang trở nên thân thiện với máy tìm kiếm

- Các tính năng quản lý API và email sẵn có cho phép ứng dụng web vượt qua những tương tác trình duyệt cổ điển

- Các danh sách trở nên thân thiện với người dùng hơn nhờ việc phân trang, sắp xếp

và tìm kiếm 1 cách tự động

- Các factory, plugins và mixins cung cấp khả năng mở rộng ở mức cao

- Các tương tác AJAX dễ hiện thực nhờ vào các helper 1 dòng tóm lượt những hiệuứng javascript tương thích với các trình duyệt

Môi trường và công cụ phát triển:

Để đáp ứng những yêu cầu của những doanh nghiệp có các chuẩn viết mã riêng vàcác qui tắc quản lý dự án, symfony có thể hoàn toàn được tùy biến Mặc nhiên nó cungcấp một vài môi trường phát triển và được gói gọn với nhiều công cụ để tự động hóa những nhiệm vụ công nghệ phần mềm thông thường:

- Các công cụ sinh mã tự động rất tuyệt cho việc tạo bản prototype và phần quản

lý backend chỉ với vài dòng lệnh

- Unit và funtional testing framework sẵn có cung cấp những công cụ rất tốt cho phép test-driven developement

- Debug: giúp debug tất cả thông tin mà lập trình viên cần trên trang

- Giao diện chế độ dòng lệnh tự động hóa triển khai các ứng dụng giữa hai server

- Tính năng logging cung cấp cho adminnistrators những chi tiết đầy đủ về sự hoạt động của một ứng dụng

Trang 33

Để cài đặt symfony, download file nén trên trang web symfony Hướng dẫn này đượcviết trên symfony 1.2, hãy download phiên bản mới nhất của symfony 1.2.

Ở mục "Source Download", bạn sẽ tìm thấy file nén dạng .tgz hoặc .zip Downloadfile này và copy vào thư mục vừa tạo lib/vendor, sau đó giải nén:

Trang 34

Nếu đoạn script không hiện thông báo lỗi, hãy kiểm tra để chắc rằng symfony được càithành công bằng cách sử dụng lệnh của symfony để xem phiên bản (chữ cái V viết hoa):

Từ thư mục jobeet, chạy lệnh generate:project để tạo 1 project symfony:

$ php lib/vendor/symfony/data/bin/symfony generate:project jobeet

Ở Windows:

c:\> php lib\vendor\symfony\data\bin\symfony generate:project jobeet

Lệnh generate:project tạo ra cấu trúc file và thư mục mặc định cần cho một project symfony:

Trang 35

Tại sao symfony tạo ra quá nhiều file vậy? Một trong những lợi ích của việc sử dụngfull-stack framework là chuẩn hoá sự phát triển của bạn Nhờ cấu trúc file và thư mụcthống nhất của symfony, bất kì lập trình viên nào có hiểu biết về symfony cũng có thểthực hiện công việc bảo trì cho bất kì dự án symfony nào Sau một thời gian ngắn, anh

ta đã có thể bắt đầu code, sửa lỗi, và thêm tính năng mới

Lệnh generate:project cũng tạo một shortcut symfony ở thư mục ngoài cùng của project Jobeet để giảm số kí tự phải gõ trong lệnh

Vì thế, từ bây giờ, thay vì gõ đầy đủ đường dẫn, chúng ta chỉ cần gõ symfony

Bây giờ, tạo application frontend bằng lệnh generate:app:

$ php symfony generate:app escaping-strategy=on

escaping-strategy: cho phép output escaping để chống tấn công XSS

csrf-secret: cho phép session tokens in form để chống tấn công CSRF

Trang 36

Nhờ 2 tham số này, chúng ta đã bảo vệ được ứng dụng của mình khỏi 2 lỗ hổng bảomật phổ biến trên web.

Bây giờ, bạn có thể copy project Jobeet đến bất kì đâu, nó vẫn chạy được

Môi trường

Trong thư mục web/ , bạn có thể thấy 2 file PHP: index.php và frontend_dev.php

Những file này được gọi là front controllers: mọi yêu cầu đến ứng dụng đều thông

qua chúng Nhưng tại sao chúng ta có 2 file front controllers trong khi chúng ta chỉ cómột ứng dụng?

Cả hai file đều gọi cùng một ứng dụng nhưng trong những môi trường khác nhau Khibạn phát triển một ứng dụng, trừ khi bạn phát triển trực tiếp sản phẩm trên server, bạncần vài môi trường:

development environment: môi trường sử dụng bởi web developers để thêm

các tính năng, sửa lỗi,

test environment: môi trường sử dụng cho các ứng dụng test tự động.

staging environment: môi trường sử dụng bởi customer để test ứng dụng và

thông báo lỗi và các tính năng thiếu

production environment: môi trường tương tác với end user.

Trong môi trường development, ứng dụng cần log tất cả các request để dễ dàng tìmlỗi, nó phải hiển thị exception trên trình duyệt, và hệ thống cache phải được tắt để cóthể thấy thay đổi khi thay đổi code Vì thế, môi trường development phải được cấuhình cho phù hợp với lập trình viên

Ngày đăng: 24/04/2013, 16:51

HÌNH ẢNH LIÊN QUAN

Hình ảnh  Nội thất Giới thiệu - : Xây Dựng Website bán  Giấy Dán Tường
nh ảnh Nội thất Giới thiệu (Trang 60)

TỪ KHÓA LIÊN QUAN

w