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

Đưa một cửa hàng lên mạng Internet

55 406 0
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 đề Đưa Một Cửa Hàng Lên Mạng Internet
Tác giả Nhóm tác giả
Người hướng dẫn TS. Nguyễn Văn A
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Marketing và Quản trị Kinh doanh
Thể loại Luận văn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 55
Dung lượng 562,3 KB

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

Nội dung

Đưa một cửa hàng lên mạng Internet

Trang 1

Luận văn

Đưa một cửa hàng lên mạng Internet

Trang 2

Chương I Đưa một cửa hàng lên mạng Internet

1 GIớI THIệU Về THƯƠNG MạI ĐIệN Tử

1.1 THƯƠNG MạI ĐIệN Tử Là Gì ?

Thương mại điện tử cú nguồn gốc từ Electronic Data Interchange (EDI) EDI là một phương phỏp truyền thụng tin từ mỏy này sang mỏy khỏc EDI được phỏt triển cho phộp cỏc doanh nghiệp tự động hoỏ tiến trỡnh truyền tải cỏc tài liệu kinh doanh như hoỏ đơn và cỏc mặt hàng EDI cũng cú thể sử dụng để truyền tải những loại thụng tin khỏc Vớ dụ cỏc trường đại học dựng EDI để truyền học bạ của cỏc sinh viờn, cỏc trung tõm y tế dựng EDI để truyền hồ sơ bệnh ỏn

Thương mại điện tử bao gồm 3 loại giao dịch kinh doanh: Thứ nhất, giao dịch cú thể diễn ra giữa doanh nghiệp với người tiờu dựng Thứ hai, giao dịch giữa cỏc doanh nghiệp với nhau Thứ ba, giao dịch giữa người tiờu dựng với người tiờu dựng

Cỏc giao dịch bằng thẻ tớn dụng dường như là một yếu tố cần thiết trong thương mại điện tử Thương mại điện tử cú thể chỉ bao gồm những bước dẫn đến hoạt động mua bỏn chứ khụng phải quyết định mua cuối cựng

Thương mại điện tử đề cập đến quỏ trỡnh mua hoặc bỏn một sản phẩm hoặc dịch vụ qua một mạng điện tử Mụi trường phổ biến nhất để thực hiện thương mại điện tử đú chớnh là Internet

1.2 Những công nghệ của Microsoft được dùng cho thương mại điện tử

Microsoft đưa ra hai Web Server: Personal Web Server và Internet mation Server Microsoft Personal Web Server hoạt động với Win9X hoặc Windows NT Workstation Personal Web Server được tạo ra với hai mục đớch: dựng để đăng tải một Website cú lưu lượng thấp và để thử nghiệm một Website, khụng phải là một Web Server thớch hợp cho việc đăng tải một site thực trờn Internet Internet Information Server cú thể phục vụ hàng trăm hoặc thậm chớ hàng ngàn người sử dụng cựng một lỳc Internet Information Server tương thớch với Windows NT Server hoặc Windows 2000 Server Nú được cung cấp như một thành phần của hai hệ điều hành này

Infor-Để tạo một Website thương mại ta cần một cơ sở dữ liệu để lưu trữ thụng tin về sản phẩm và những thụng tin khỏc Microsoft Access là hệ quản trị cơ sở

dữ liệu dành cho mỏy để bàn nờn chỉ sử dụng trong việc thử nghiệm Website hoặc Website cú lưu lượng thấp SQL Server là hệ quản trị Client/ Server nờn cú thể hỗ trợ cho hàng ngàn người sử dụng cựng một lỳc

Trang 3

Chuyờn đề thương mại điện tử em sử dụng cụng nghệ Active Server Pages

và cơ sở dữ lệu Access Một trang ASP là một file bất kỳ định vị trờn Server cú phần mở rộng là asp, sử dụng ngụn ngữ kịch bản nờn cỏc script ASP chạy trong cựng một tiến trỡnh với Web Server và chỳng hoạt động trong cơ chế đa luồng (multithread) điều này cho phộp trang ASP hỗ trợ hiệu quả cho nhiều người dựng một lỳc Trang ASP được xử lý trờn trang Web Server nờn trang ASP sẽ tương thớch với tất cả cỏc trỡnh duyệt Web

ActiveX Data Object cho phộp truy xuất cơ sở dữ liệu từ một trang ASP

cú thể sử dụng với bất kỳ cơ sở dữ liệu nào tương thớch Open Databe Connec- tivity (ODBC) như Access, SQL Server hoặc OLEDB, trong những cơ sở dữ liệu

đú cú Oracle, Sybase, Informix, DB2, Ingres

2 tương tác với khách hàng

2.1 làm việc với đối tượng RESPONSE

Một trang ASP là một trang HTML chuẩn cú chứa script vỡ thế cú thể sử dụng cỏc script để gửi nội dung động đến trỡnh duyệt Trong khi điều hành một Website thương mại cú nhiều tỡnh huống mà ta phải gửi nội dung động đến khỏch hàng Chẳng hạn như khi khỏch hàng chọn một vài sản phẩm trong cửa hàng, ta phải tạo động một biờn nhận kốm những thụng tin đặt hàng của khỏch hàng Response.Write để gửi dữ liệu đến trỡnh duyệt của khỏch hàng và Response.End để kết thỳc sự thực thi của một script

2.2 Làm việc với đối tượng request

Trong khi đối tượng Response đại diện tất cả nội dung được gửi từ Web Server đến trỡnh duyệt Web thỡ đối tượng Request đại diện mọi thụng tin được gửi từ trỡnh duyệt Web đến Web Server, cú 4 tập hợp rất hữu dụng:

Tập hợp QueryString Đại diện cỏc biến chuỗi nghi vấn

Tập hợp Form Đại diện cỏc trường trong form HTML

Tập hợp Server Variable Đại diện cỏc tiờu đề trỡnh duyệt và cỏc biến Server Tập hợp Cookies Đại diện cỏc cookies của trỡnh duyệt

Sử dụng cỏc chuỗi truy vấn là phần URL xuất hiện sau một dấu chấm hỏi

Vớ dụ: http://search.yahoo.com/bin/search?p=Active+Server+Pages chuỗi truy vấn cú tờn là p cú giỏ trị “Active Server Pages” Nếu nhập chuỗi này vào thanh địa chỉ của trỡnh duyệt Web thỡ tất cả cỏc danh sỏch từ Yahoo! Cú liờn quan đến Active Server Pages sẽ được trả về Thụng thường khụng cần nhận trực tiếp một chuỗi truy vấn vào thanh địa chỉ của trỡnh duyệt mà tạo liờn kết trong một trang

cú chứa chuỗi truy vấn

Sử dụng tập hợp form: Để cho phộp khỏc hàng đăng ký tại Website, hoàn thành một form tiếp thị, hoặc nhập số thẻ tớn dụng ta phải sử dụng một Form HTML Để gọi ra thụng tin mà khỏch hàng nhập vào form của đối tượng

Trang 4

Request Điều quan trọng là kiểm tra xem các trường có rỗng hay không, ta có thể so sánh giá trị của trường với một chuỗi độ dài zero, hoặc ta có thể đặt điều kiện nếu chuỗi nhập vào rỗng thì gán cho chuỗi một vài ký tự đặc biệt Ngoài ra, còn phải hiển thị lại các trường trong form khi khách hàng nhập sai nội dung trong form nào đó, đây là tính khoan dung Để làm được điều này cần phải truyền tất cảc dữ liệu về form ban đầu

Gọi ra các biến form và chuỗi truy vấn, có một vài tình huống nào đó mà

ta cần gọi ra một biến nếu nó được truyền trong một chuỗi truy vấn hoặc một biến form, có thể tìm kiếm tất cả các tập hợp chứa trong đối tượng Request bằng cách không chỉ định một tập hợp cụ thể nào

<head><title>Form và chuỗi truy vấn</title></head>

<body>

<a href="page.asp?myvar=hello">Click here</a>

<p>

<FORM method="post" ACTION="page.asp">

<INPUT name="myvar" size="10">

<INPUT type="submit" value="OK">

2.3 Lµm viÖc víi c¸c biÕn Server

Tập hợp này chứa các biến đại diện cho các tiêu đề của trình duyệt và các thuộc tính của Server, với biến Server ta có thể biết được trang hiện thời, trang cuối cùng mà một khách hàng truy cập, địa chỉ Internet liên hệ với khách hàng, loại trình duyệt mà khách hàng sử dụng

3 X©y dùng danh môc s¶n phÈm

3.1 T¹o c¬ së d÷ liÖu cho cöa hµng

Bước đầu tiên trong việc tạo cửa hàng trực tuyến là tạo cơ sở dữ liệu để lưu giữ tất cả các thông tin về các sản phẩm Microsoft Access là cơ sở dữ liệu thích hợp để tạo Website thử nghiệm hoặc một Website có lưu lượng thấp, tuy nhiên ta có thể nâng cấp cơ sở dữ liệu Access lên cơ sở dữ liệu SQL Server bằng cách sử dụng Microsoft Upsizing Tools Công cụ này được cung cấp kèm theo Microsoft Access 2000

Tạo bảng products:

Product_id AutoNumber Chứa số duy nhất dành cho sản phẩm trong

bảng này

Trang 5

Product_name Text Chứa tên của sản phẩm trong bảng

Product_price Currency Chứa giá hiện thời của sản phẩm

Product_picture Text Chứa đường dẫn đến hình ảnh của sản phẩm Product_category Text Chứa loại của sản phẩm

Product_briefdesc Memo Chứa mô tả ngắn về sản phẩm

Product_fulldesc Memo Chứa mô tả đầy đủ về sản phẩm, cột này có

thể là 1 trang đầy thông tin

Product_status Number Chứa thông tin về tình trạng hiện thời sản

phẩm

Kết nối cơ sở dữ liệu

Hai loại DSN khác nhau có thể được tạo ra Nếu tạo một file DSN, thông tin về kết nối cơ sở dữ liệu được lưu trong một file Nếu tạo một System DSN thì thông tin kết nối cơ sở dữ liệu được lưu trong registry của máy tính Một kết nối

cơ sở dữ liệu được đại diện trong một trang ASP bởi đối tượng Connection của ADO

Mở một kết nối cơ sở dữ liệu (Data Source Name: accessDSN)

3.2 T¹o form addproducts

Trang addProducts.asp chứa một form HTML cho phép nhập vào thông tin sản phẩm, trang manageProducts.asp – khi đệ trình form được chứa trong addProducts.asp thì trang này sẽ thực sự thêm thông tin sản phẩm mới vào trong

cơ sở dữ liệu Trang addProducts.asp chứa một form HTML chuẩn với các trường tương ứng với các cột của bảng Products

Trang 6

<input name="productName" size="50" maxlength="50"></td></tr>

<%

FUNCTION fixQuotes (theString)

fixQuotes=REPLACE(theString,"'","''")

END FUNCTION

' Get the form Variables

addProduct = TRIM (Request("addProduct"))

updateProduct = TRIM (Request("updateProduct"))

Trang 7

productID = TRIM (Request("productID"))

productName = TRIM (Request("productName"))

productPrice = TRIM (Request("productPrice"))

productPicture = TRIM (Request("productPicture"))

productCategory = TRIM (Request("productCategory"))

productBriefDesc = TRIM (Request("productBriefDesc"))

productFullDesc = TRIM (Request("productFullDesc"))

productStatus = TRIM (Request("productStatus"))

' Assign Default Variables

' Open the Database Connection

Set Con=Server.CreateObject( "ADODB.Connection" )

sqlString="INSERT INTO PRODUCTS (product_name, product_price,

product_picture, product_category, product_briefdesc,

product_fulldesc, product_status)" VALUES ('"&productName&"',

'"&productPrice&"', '"&productPicture&"', '"&productCategory&"', '"&productBriefDesc&"', '"&productFullDesc&"', '"&productStatus&"')" Con.Execute sqlString

Trang 8

' Open the Database Connection

Set Con=Server.CreateObject ( "ADODB.Connection" )

Con.Open "accessDSN"

' Open the Recordset

Set RS=Server.CreateObject ( "ADODB.Recordset" )

RS.ActiveConnection=Con

RS.CursorType=3

RS.Open "SELECT * FROM products WHERE product_id ="&productID

Trang 9

IF NOT RS.EOF THEN

FUNCTION SELECTED ( firstVal, secondVal )

IF cSTR( firstVal)=cSTR (secondVal) THEN

<td colspan="2" bgcolor="yellow" height="19">

<font face="Arial" size="3">

Trang 10

<option value="0" <%=SELECTED( "0", productStatus )%>> INACTIVE

<option value="1" <%=SELECTED( "1", productStatus )%>> ACTIVE

</select></td></tr>

<tr>

<td colspan="2" align="right" height="25">

<input type="submit" value="Update product"></td></tr>

</table>

</center>

<input name="productID" type="hidden" value "<%=productID%>">

<input name="updateProduct" type="hidden" value="1">

Đối tượng Recordset đại diện một tập hợp các mẩu tin được gọi ra từ một

cơ sở dữ liệu Bất cứ khi nào ta sử dụng một Recordset để hiển thị các mẩu tin cơ

sở dữ liệu bên trong một trang ASP thì ta tuân thủ theo những bước sau:

1 Mở một kết nối cơ sở dữ liệu với đối tượng Connection

2 Mở một Recordset bằng cách sử dụng câu lệnh SELECT của SQL

3 Hiển thị các mẩu tin trong Recordset bằng cách duyệt qua Recordset

Ví dụ: Ta hiển thị tên của tất cả các sản phẩm trong bảng Products

RS.Open "SELECT * FROM products"

' Loop through Recordset

WHILE NOT RS.EOF

Response.Write RS("product_name")

RS.MoveNext

WEND

%>

Trang 11

Ta có thể xem một Recordset như một file văn bản Mỗi dòng trong một Recordset giống như một dòng riêng biệt trong file văn bản Bất cứ khi nào ta gọi phương thức MoveNext, ta được chuyển đến dòng kế tiếp Khi đến cuối tập tin (cuối Recordset) thì thuộc tính EOF (End of File) có giá trị là True

Sử dụng câu lệnh Select của SQL

Ta mở một Recordset bằng cách sử dụng câu lệnh SELECT của SQL Để chọn tất cả các cột và tất cả các hàng trong một bảng sử dụng câu lệnh sau: SELECT * FROM table_name

Tuy nhiên, việc gọi ra tất cả các cột từ một bảng là một ý kiến không hay

Ta không nên đặt gánh nặng lên vai server bằng việc gọi ra những dữ liệu không thực sự cần Nếu dự định chỉ thị những cột nào đó trong một bảng thì ta nên giới hạn các cột được gọi ra bằng cách liệt kê các cột:

SELECT column1, column2 FROM table_name

Ta cũng có thể sử dụng câu lệnh SELECT để gọi ra chỉ những hàng nào

đó trong một cơ sở dữ liệu Ví dụ, chọn chỉ những dòng trong bảng Products trong đó cột product_category có giá trị là Chocolates:

SELECT product_name FROM Products

WHERE product_category="Chocolates"

Sử dụng biểu thức toán học và logic bên trong mệnh đề WHERE để gọi ra các mẩu tin đáp ứng đúng các điều kiện Ví dụ, gọi ra chỉ những sản phẩm có giá

từ $20.00 đến $30.00:

SELECT product_name FROM Products

WHERE product_price > 20.00 AND product_price < 30.00

Hơn thế, ta có thể mở rộng câu lệnh SELECT xa hơn bằng cách sử dụng mệnh đề ORDER BY – cho phép gọi ra các mẩu tin từ một bảng theo một thứ tự nào đó Ví dụ, gọi ra các sản phẩm loại Chocolates với tên các sản phẩm được xếp theo thứ tự abc:

SELECT product_name FROM Products

WHERE Product_category="chocolates"

ORDER BY product_name

Cuối cùng, ta có thể sử dụng câu lệnh SELECT để gọi chỉ những mẩu tin riêng biệt trong một bảng Ví dụ, liệt kê tất cả các loại sản phẩm riêng biệt trong bảng Products:

SELECT DISTINCT product_category

FROM Products

Các loại con trỏ của Recordset

Khi một Recordset được mở với một kiểu con trỏ nào đó Ta có thể mở một Recordset với bất kỳ con trỏ nào trong bốn loại con trỏ sau: forward-only, static, keyset và dynamic Loại con trỏ của một Recordset quyết định các phương thức và thuộc tính mà Recordset sẽ hỗ trợ Theo mặc định, khi một Recordset

Trang 12

được mở, nó được mở với một con trỏ only Tuy nhiên, con trỏ only là loại con trỏ bị hạn chế nhất Ví dụ, sử dụng thuộc tính RecorCount của đối tượng Recordset, ta có thể xác định số lượng các mẩu tin được chứa trong một Recordset với con trỏ forward-only Để sử dụng thuộc tính RecordCount, ta phải mở Recordset với một con trỏ linh hoạt hơn

forward-4.2 HiÓn thÞ c¸c s¶n phÈm

Tạo giao diện cho cửa hàng trực tuyến cho phép khách hàng duyệt qua danh sách các sản phẩm ta cần tạo 4 file:

CatList.asp File này chứa một script hiển thị từng loại sản phẩm Các

khách hàng có thể nhấp vào một loại sản phẩm cụ thể để xem danh sách các sản phẩm trong loại này

ProductList.asp File này chứa một script liệt kê tất cả các sản phẩm trong một

loại cụ thể

Default.asp File này là trang ASP chính của cửa hàng, hiển thị danh sách

các sản phẩm

Product.asp File này hiển thị chi tiết về một sản phẩm cụ thể Khi một

khách hàng nhấp vào tên của một sản phẩm bên trong trang Default.asp thì các chi tiết của sản phẩm được hiển thị trong trang này

Chọn các loại sản phẩm

Khi thêm các sản phẩm vào cửa hàng trực tuyến, có một trường dành cho loại sản phẩm (product_category) khi khách hàng duyệt qua cửa hàng họ có thể chọn một loại sản phẩm cụ thể và chỉ xem các sản phẩm trong loại này

sqlString="SELECT DISTINCT product_category FROM products"

sqlString=sqlString & "WHERE product_status=1"

sqlString=sqlString & "ORDER BY product_category"

<% WHILE NOT catRS.EOF %>

<% IF catRS ("product_category")=cat THEN %>

<li><font color="red"><b>

<%= catRS ("product_cateegory") %>

</b></font>

Trang 13

Hiển thị danh sách các sản phẩm

Khi khách hàng nhấp vào một loại, tên của loại này được truyền bên trong biến chuỗi truy vấn cat Script productList.asp sử dụng biến cat để chọn chỉ những sản phẩm nào thuộc loại hiện thời được chọn

sqlString="SELECT product_id, product_picture, product_name,

product_briefDesc" FROM Products WHERE product_category='"&cat&"' AND product_status=1 ORDER BY product_name "

prodRS.Open sqlString

%>

<table width="350" border="0" cellpadding="4" cellspacing="0">

<% WHILE NOT prodRS.EOF %>

<a href="product.asp?pid=<%= prodRS("product_id") %>">

get more information </a></td></tr>

Trang 14

Script này tạo một thực thể của đối tượng Recordset có tên là prodRS Recordset prodRS chứa tất cả các sản phẩm thuộc một loại nào đó Một mô tả về mỗi sản phẩm được hiển thị từng cái một, nếu một sản phẩm có một hình ảnh thì hình ảnh này được hiển thị trong ô bên trái tên sản phẩm và phần mô tả ngắn gọn được hiển thị trong ô bên phải, tên của các sản phẩm được hiển thị như các liên kết siêu văn bản đến trang Product.asp Nếu một khách hàng nhấp vào một sản phẩm thì họ sẽ được mang đến trang Product.asp để xem chi tiết về sản phẩm Mỗi liên kết đến trang Product.asp chứa một biến chuối truy vấn tên là pid Biến này được truyền đến trang Product.asp khi liên kết được nhấp Trang Product.asp

sử dụng biến này để hiển thị thông tin của đúng sản phẩm

Tạo trang chủ của cửa hàng

Trang Default.asp là trang ASP chính của cửa hàng trực tuyến, các khách hàng duyệt qua các sản phẩm của cửa hàng bằng cách yêu cầu trang này, script CatList.asp và ProductList.asp kết hợp với nhau trong Default.asp

<head><title>Viet Khanh's Candies and Gifts</title></head>

<body link="ff4040" text="lightred">

<form method="post" action="search.asp">

<input name="searchfor" size="15">

<input type="submit" value="Search">

Trang 15

Hiển thị chi tiết về sản phẩm

Khi một khách hàng nhấp vào tên của một sản phẩm, hoặc nhấp vào Get more Information, họ sẽ được mang đến trang Product.asp trang này trình bày thông tin chi tiết hơn về một sản phẩm Khách hàng cũng có thể sử dụng trang này để thêm một sản phẩm vào giỏ đi chợ của mình

' Get the product information

sqlString="SELECT* FROM Products"

sqlString=sqlString & "WHERE product_id=&productID"

Trang 16

<body link="#ff4040" vtext="lightred">

<form method="post" action="search.asp">

<input name="searchfor" size="15">

<input type="submit" value="Search">

<form method="post" action="Cart.asp">

<input name="pid" type="hidden"

value=" <%=RS( "product_id" )%> ">

<input type="submit" value="Add To Cart">

Trang 17

</form>

<%=RS( "product_fullDesc" )%>

<form method="post" action="Cart.asp">

<input name="pid" type="hidden"

Phân trang Recordset

Nếu ta liệt kê một số lượng sản phẩm thuộc một loại duy nhất thì ta có thể không muốn tất cả các sản phẩm được hiển thị trên chỉ một trang, điều đó làm cho cửa hàng có khả năng mở rộng hơn nữa việc kết nối và gọi ra các mẩu tin từ một cơ sở dữ liệu Chẳng hạn ta muốn không quá 5 mô tả về sản phẩm được liệt

kê trên một trang

Đối tượng Recordset có 3 thuộc tính cho phép ta các kết quả từ một truy vấn cơ sở dữ liệu ra nhiều trang:

AbsolutePage Thiết lập hoặc trả về trang chứa các mẩu tin hiện thời

PageCount Trả về số trang trong một Recordset

PageSize Thiết lập hoặc trả về số lượng mẩu tin được chứa trong một

trang (mặc định là 10) 4.3 Lµm cho cöa hµng cã kh¶ n¨ng më réng h¬n n÷a Việc kết nối và gọi ra các mẩu tin từ một cơ sở dữ liệu chiếm rất nhiều tài nguyên máy tính Nếu ta muốn tạo một Website có khả năng mở rộng để hỗ trợ hàng trăm người dùng đồng thời thì ta nên tránh việc chọn các mẩu tin từ một cơ

sở dữ liệu bất cứ khi nào có thể

Chắc chắn, các loại sản phẩm sẽ không thay đổi thường xuyên Một cách

để tránh gọi ra các loại sản phẩm từ cơ sở dữ liệu là chỉ cần liệt kê các loại sản phẩm dưới dạng các liên kết HTML tĩnh Nói một cách khác ta có thể biến file CartList.asp thành một trang HTML tĩnh, nhưng khuyết điểm của giải pháp này

là phải nhập lại file CartList.asp bất cứ khi nào thêm một sản phẩm thuộc loại mới hoặc xoá bỏ hoặc ngừng hoạt động đối với tất cả các sản phẩm trong một loại Việc bảo trì Website cũng có những chi phí đáng quan tâm Thật may mắn

là có một giải pháp tốt hơn Thay vì gọi ra danh sách các loại sản phẩm bất cứ khi nào hiển thị một trang, ta có thể gọi ra các loại sản phẩm một lần và lưu chúng trong bộ nhớ Như vậy ta tránh được việc truy xuất cơ sở dữ liệu bất cứ khi nào các loại sản phẩm được hiển thị Thuận lợi của giải pháp này là nó làm

Trang 18

cho cửa hàng trực tuyến có khả năng mở rộng nhiều hơn trong khi không làm cho việc bảo trì khó khăn hơn Danh sách các loại sản phẩm vẫn được tạo ra tự động

từ cơ sở dữ liệu Tuy nhiên, danh sách này không được tạo ra mỗi lần một trang được yêu cầu

Để lưu trữ danh sách các loại sản phẩm trong bộ nhớ, ta sẽ sử dụng biến Application, nó sẽ chứa một mảng trong đó mỗi phần tử chứa tên của một loại sản phẩm Bởi vì danh sách các loại sản phẩm được lưu trữ trong bộ nhớ nên nó

sẽ không được cập nhật tự động nếu thay đổi một sản phẩm trong cơ sở dữ liệu Các loại sản phẩm sẽ được tái nạp chỉ khi máy tính khởi động lại hoặc dịch vụ Web bị ngưng và khởi động lại Nếu buộc danh sách các loại sản phẩm phải được nạp lại ta dùng script reset, script này chỉ đơn giản là thiết lập biến Application tên là productcategories để nó có giá trị là một chuỗi rỗng Điều này xoá mảng khỏi biến Application làm cho danh sách các loại sản phẩm được gọi ra từ cơ sở

dữ liệu lần kế tiếp một trang được gọi

Trang updateProduct.asp (phần Open the Recordset) gán giá trị của cột product_featured cho biến cục bộ productFeatured, khi product_featured là NULL thì biến productFeatured được gán giá trị 0

ProductFeatured = RS("product_featured")

IF isNULL(productFeatured) THEN productFeatured = 0

Kế đến, thêm đoạn mã sau vào trong form HTML cho phép chọn một sản phẩm làm sản phẩm nổi bật:

Trang 19

Cuối cùng, thay đổi file manageProduct.asp để cập nhật cơ sở dữ liệu với thông tin về việc một sản phẩm có được chọn làm sản phẩm nổi bật hay không, thêm vào Get the form Variables:

ProductFeatured=TRIM(Request("productFeatured"))

Thêm product_featured='"&productfeatured&"' vào cuối chuỗi SQL được tạo trong phần Update Product

Gọi ra danh sách các sản phẩm nổi bật

Ta đã chọn các sản phẩm nổi bật cho cửa hàng trực tuyến, ta sẽ cần một phương pháp để hiển thị các sản phẩm nổi bật trên trang chủ Hiển thị danh sách

cá sản phẩm nổi bật với sự giúp đỡ của một file dùng chung tên là Featured.asp,

nó được hiển thị khi không có loại nào được chọn Nó được chứa trong phần cuối của default.asp:

Trang 20

get more information</a></td></tr>

5.2 T¹o mét trang t×m kiÕm

Các khách hàng nhập vào các mục cần tìm vào trong hộp tìm kiếm xuất hiện trong trang chủ của cửa hàng và gọi ra một danh sách các sản phẩm khớp với mục cần tìm Để tạo trang tìm kiếm ta cần sử dụng toán tử LIKE của SQL thực hiện việc so khớp bao gồm các ký tự đại diện

SELECT * FROM Products

WHERE product_name LIKE 'c%'

Câu lệnh SQL này gọi ra tất cả các dòng trong bảng Products có trường product_name bắt đầu với ký tự c Nó không phân biệt kiểu chữ

IF cat = "" THEN cat = "Home"

' Get Search Phrase

searchFor = TRIM(Request("searchFor"))

' Open Database connection

Set Con = Server.CreateObject("ADODB.Connection")

Con.Open "accessDSN"

%>

<html>

<head><title>VietKhanh's Candies and Gift - Search</title></head>

<body link="#FF4040" vtext="lightred" bgcolor="#FFFFFF">

<a href = "cart.asp">shopping cart</a>

<a href = "account.asp">account</a></td></tr>

Trang 21

<form method="post" action="search.asp">

<input name="searchfor" size="15">

<input type="submit" value="search">

<a href="product.asp?Pid=<%= RS("product_ID")%>">

Get more information</a><td></tr>

<%

RS.MoveNext

WEND

%>

Trang 22

<font face="Arial" color="darkblue"><b>

No products matched your search terms.</b></font></td></tr>

Tối ưu hoá trang tìm kiếm

Việc sử dụng toán tử LIKE để so khớp các mục cần tìm là khó khăn đối với cơ sở dữ liệu Nếu có quá nhiều người cố gắng thực hiện những cuộc tìm kiếm cùng một thời điểm hoặc có hàng ngàn sản phẩm để tìm kiếm thì ta nên đầu

tư một phương pháp tìm kiếm khác cho phép những người dùng tìm các sản phẩm tại Website này Microsoft có hai sản phẩm có thể sử dụng để thêm một trang tìm kiếm qua các file tĩnh Ta có thể sử dụng Microsoft Index Server được cung cấp với NT Option Pack Nó có thể được sử dụng để thực hiện các cuộc tìm kiếm trên các file tĩnh trong đĩa cứng nhưng nó không thể được sử dụng để tìm kiếm trên các bảng trong cơ sở dữ liệu Nếu ta cần thực hiện các cuộc tìm kiếm đối với các bảng trong cơ sở dữ liệu thì ta có thể sử dụng Microsoft Full-text Search Service được đính kèm với Microsoft SQL Server, cho phép thực hiện các cuộc tìm kiếm trên các bảng cơ sở dữ liệu của SQL Server Ta có thể sử dụng nó

để thực hiện các cuộc tìm kiếm đơn giản hoặc những câu truy vấn Boolean phức tạp Để sử dụng Full-text Search Server thì phải mua Microsoft SQL Server 7.0 5.3 T¹o c¸c trang web cã kh¶ n¨ng chØ môc

Việc đưa các trang Web vào trong các cơ cấu tìm kiếm trên Internet như Alta Vista, Lycos, Inktomi và Google là rất quan trọng nếu muốn thu hút các khách hàng Nếu không tạo chỉ mục cho các trang Web của mình thì hầu hết mọi người sẽ không bao giờ tìm thấy cửa hàng này để mua các sản phẩm

Các cơ cấu tìm kiếm trên Internet gặp phải các vấn đề với việc tạo chỉ mục các trang được tạo từ một cơ sở dữ liệu Nếu một trang hiển thị nội dung khác nhau tuỳ thuộc vào giá trị của các biến chuỗi truy vấn được truyền đến cho nó thì

Trang 23

một cơ cấu tìm kiếm trên Internet sẽ không thể tạo chỉ mục đúng nội dung của trang Có một cách giải quyết vấn đề này Thủ thuật ở đây là làm cho cơ cấu tìm kiếm tin rằng nó đang nhận một trang tĩnh trong khi trên thực tế nó đang gọi ra một trang được tạo từ cơ sở dữ liệu Một cách thức dễ dàng để thực hiện điều này

là tận dụng đặc tính Custom Errors của Internet Information Server

Đầu tiên, ta cần tạo một thư mục đặc biệt tên là Products như một thư mục con của thư mục gốc Website của ta (c:\ inetpub\wwwroot\products) Trong Properties của Products chọn tab Custom Errors và tạo một số lỗi tuỳ biến đối với lỗi 404 File Not Found Đối với Message Type chọn URL Trong hộp văn bản có nhãn là URL nhập vào /Product.asp Những thư mục này sẽ định hướng lại đến trang ASP tên là Product.asp khi một file không được tìm thấy trong thư mục Products

Bất cứ khi nào một khách hàng nào đó yêu cầu một trang từ thư mục Products họ sẽ được định hướng tự động đến trang Product.asp Ví dụ, khi khách hàng yêu cầu trang này từ địa chỉ http://domain/Products/Product12.htm thì trang này sẽ được trả về thay thế Ta cần thay đổi trang Product.asp, thêm đoạn mã sau vào bên dưới phần Get the Product ID của trang Product.asp

IF productID="" THEN

WorkString=Request.QueryString

WorkString=RIGHT.(workString,LEN(workString)–INSTRrev(workString,"/")) FOR i=1 TO Len(workString)

6 T¹o mét form ph¶n håi ý kiÕn cña kh¸ch hµng

Các khách hàng có thể sử dụng form này bất cứ khi nào họ cần để lại một thông điệp cho người quản trị cửa hàng Ví dụ form này có thể được sử dụng bởi một khách hàng yêu cầu sự hỗ trợ hoặc báo cáo các lỗi tại Website của ta Khi một khách hàng để lại ý kiến phản hồi, ý kiến phản hồi của họ sẽ được lưu trong một bảng của cơ sở dữ liệu Để tạo form phản hồi ý kiến ta cần tạo một bảng mới trong cơ sở dữ liệu và thêm hai trang ASP Bảng mới có tên là feedback nó chứa bốn trường như sau:

Feedback_id Autonumber Chỉ định duy nhất mỗi dòng trong bảng Feedback_email Text Chứa địa chỉ email của khách hàng

Trang 24

Feedback_comment Memo Chứa nội dung ý kiến phản hồi của khách

hàng

Feedback_entrydate Date/Time Tự động chứa ngày tháng mà ý kiến phản

hồi được nhập vào

Feedback.asp

<html>

<head><title>Customer Feedback</title></head>

<body>

Thank you for leaving customer feedback on our Website

<br>Please enter your feedback information in the form below:

<form method="post" action="savefeedback.asp">

<p><b>Your Email Address:</b><br>

<input name="email" size="50" maxlength="255">

<p><b>Your Feedback:</b><br>

<textarea name="comment" cols="50" rows="4" swap="virtual"></textarea>

<p><input type="submit" value="Submit Feedback">

</form>

</body>

</html>

Form phản hồi ý kiến của khách hàng gồm có một form HTML chuẩn, Nó

có một trường Email và một trường Comment Khi một khách hàng đệ trình form này, dữ liệu được đệ trình đến trang savefeedback.asp

IF email <> "" AND comment <> "" THEN

Set Con = Server.CreateObject("ADODB.Connection")

Con.Open "accessDSN"

sqlString="INSERT INTO feedback(feedback_email, feedback_comment)

VALUES('"&fixquotes(email)&"','"&fixquotes(comment)&"')" Con.Execute sqlString

Trang này lưu trữ thông tin mà khách hàng nhập vào trong form phản hồi

ý kiến vào bảng feedback trong cơ sở dữ liệu

Trang 25

Chương II TạO MộT WEBSITE ĐĂNG Ký

1 XÂY DựNG CƠ Sở Dữ LIệU GIAO DịCH

1.1 CáC BảNG TRONG CƠ Sở Dữ LIệU GIAO DịCH

Trước khi đi vào chi tiết về cỏch xử lý cỏc đơn đặt hàng của khỏch hàng,

ta cú một cỏi nhỡn tổng quan về cỏc bảng mà chỳng ta sẽ tạo để hoàn thành cửa hàng trực tuyến, ngoài bảng Products lưu trữ thụng tin về sản phẩm, ta cần tạo thờm cỏc bảng sau:

Bảng Users Lưu trữ thụng tin về người dựng, chẳng hạn như username và

password, thụng tin về địa chỉ và thụng tin về thẻ tớn dụng

Bảng Cart Lưu trữ giỏ đi chợ của khỏch hàng Khi cỏc khỏch hàng thờm

những mục hàng vào giỏ đi chợ ảo của họ trong khi tham quan cửa hàng thỡ cỏc mục hàng sẽ được thờm vào trong bảng này

Bảng Order Khi một khỏch hàng thanh toỏn và hoàn thành một đơn đặt hàng

thỡ tất cả những sản phẩm trong giỏ đi chợ của khỏch hàng sẽ được chuyển đến bảng này Bảng Orders sẽ chứa thụng tin về tất cả sản phẩm được đặt hàng bờn cạnh thụng tin về tỡnh trạng của một đơn đặt hàng

Khi cỏc khỏch hàng thờm những mục hàng vào trong giỏ đi chợ của họ thỡ một trang đăng ký sẽ xuất hiện yờu cầu khỏch hàng đăng nhập Nếu đõy là lần đầu tiờn một khỏch hàng sử dụng cửa hàng thỡ họ được yờu cầu nhập vào thụng tin đăng ký trong đú cú username và password của họ Sau khi cỏc khỏch hàng đó đăng ký một lần họ cú thể truy xuất giỏ đi chợ của họ trong thời gian tới chỉ bằng cỏch nhập vào username và password hoặc tự động nếu trỡnh duyệt cú hỗ trợ cookie

Sau khi một người dựng đăng nhập vào, mục hàng được khỏch hàng chọn thờm vào trong giỏ đi chợ sẽ được thờm vào trong bảng Cart Cỏc mục hàng sẽ được duy trỡ thường trực trong giỏ đi chợ

Cuối cựng, khi cỏc khỏch hàng đó sẵn sàng hoàn thành đơn đặt hàng của

họ, họ cú thể nhấp vào nỳt Checkout (thanh toỏn) trong giỏ đi chợ của họ Khi khỏch hàng nhấp vào nỳt Checkout, tất cả cỏc mục hàng sẽ được chuyển từ bảng Cart đến bảng Orders và cỏc mục hàng trong bảng Cart của người khỏch này sẽ

bị xoỏ Cỏc bảng Users, Cart, Orders sẽ được sử dụng tuần tự

Tạo bảng Users

User_id Autonumber Nú chứa một con số duy nhất (unique) được

tạo tự động cho mỗi khỏch hàng

User_username Text Chứa tờn mà khỏch hàng sử dụng để đăng

nhập vào cửa hàng trực tuyến Mỗi người

Trang 26

dùng có một username duy nhất

User_password Number Chứa password bí mật mà một khách hàng sử

dụng để truy xuất giỏ đi chợ của mình

User_email Text Địa chỉ email của khác hàng, nó luôn là thông

tin tốt trong trường hợp ta cần liên hệ với họ User_street Text Địa chỉ đường của khách hàng, VD: 15 Lò Sũ User_city Text Thành phố nơi khách hàng sống, VD: Hà Nội User_zip Number Mã số vùng điện thoại, VD: 4

User_state Text Mã bang gồm 2 chữ cái, VD: CA

User_cctype Text Loại thẻ tín dụng mà khách hàng muốn sử

dụng để mua hàng, VD: VISA, MasterCard User_ccnumber Number Số thẻ tín dụng của khách hàng

User_ccexpires Date/Time Ngày tháng hết hạn thẻ tín dụng của khách User_ccname Text Tên của khách hàng trong thẻ tín dụng

Tạo bảng Cart

Cart_id Autonumber Chứa một con số duy nhất cho mỗi giỏ đi chợ Cart_userID Number Một trường kiểu số liên kết một giỏ đi chợ với

một khách hàng cụ thể

Cart_productID Number Một trường kiểu số chứa ID của sản phẩm được

chứa trong giỏ đi chợ

Cart_quantity Number Một trường kiểu số chứa số lượng của mục

hàng mà khách hàng đã chọn

Bảng orders

OrderID Autonumber Chứa số chỉ định duy nhất (unique) mỗi đơn

đặt hàng sản phẩm

Order_productID Number Đại diện mã số sản phẩm của mục hàng

Order_quantity Number Đại diện số lượng của các mục hàng được đặt Order_userID Autonumber Chứa mã số duy nhất (unique ID) của người

Trang 27

1.2 §¡NG Ký NG¦êI Sö DôNG

Để các khách hàng có thể thêm các mục hàng vào trong giỏ đi chợ của họ, trước tiên họ phải đăng ký Thay vì nhập thông tin địa chỉ và thông tin chi trả mỗi lần một mục hàng mới được mua, khách hàng có thể nhập thông tin này một lần Sau khi thông tin này được nhập vào một lần Sau khi thông tin này được nhập vào một lần, nó có thể được truy xuất tự động từ cơ sở dữ liệu bất cứ khi nào khách hàng mua thêm các mục hàng khác

Một lợi ích khác đối với việc yêu cầu các khách hàng đăng ký đó là nó cho phép các khách hàng duy trì một giỏ đi chợ qua nhiều lần truy cập đến website Ví dụ, một khách hàng có thể thêm hai mục hàng vào giỏ đi chợ, nhưng

có thể đợi hai ngày để cân nhắc việc mua hàng trước khi nhấn vào nút Checkout Việc tạo một giỏ đi chợ thường trực mà không yêu cầu khách hàng nhập vào thông tin đăng ký để một giỏ đi chợ có thể được so khớp với một người dùng là không thể được

Tạo trang Cart.asp

Khi một khách hàng nhấn vào nút Add to Cart (thêm vào giỏ đi chợ) trong một trang trình bày sản phẩm, họ sẽ được đưa đến trang cart.asp buộc khách hàng phải đăng ký và đăng nhập trước khi xuất giỏ đi chợ

' Open Database Connection

Set Con = Server.CreateObject("ADODB.Connection")

Con.Open "accessDSN"

' Check For New Registration

IF register <> "" AND error = "" THEN

Ngày đăng: 16/02/2014, 23:30

HÌNH ẢNH LIÊN QUAN

Bảng Cart có liên quan đến một khách hàng cụ thể. Mỗi mục hàng trong  giỏ đi chợ sẽ được hiển thị từng cái một - Đưa một cửa hàng lên mạng Internet
ng Cart có liên quan đến một khách hàng cụ thể. Mỗi mục hàng trong giỏ đi chợ sẽ được hiển thị từng cái một (Trang 36)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w