ADO (Access Data Object) là đối tượng Active X truy nhập dữ liệu mới nhất mà Microsoft đưa ra nhằm hỗ trợ tích cực cho việc tương tác với dữ liệu qua bất kì một nhà cung cấp dữ liệu nào (DB Provider). ADO cho phép viết các ứng dụng truy nhập dữ liệu từ các nguồn dữ liệu OLE DB, bao gồm các nguồn dữ liệu ODBC. Việc kết nối ODBC thông qua các driver cơ sở dữ liệu, là các chương trình đưa thông tin từ ứng dụng Web tới cơ sở dữ liệu, là các chương trình đưa thông tin từ ứng dụng Web tới cơ sở dữ liệu. Việc kết nối này sử dụng tên nguồn dữ liệu DSN (Data Souce Name). DSN chứa những thông tin về bảo mật, việc tham chiếu tới cơ sở dữ liệu vật lý. Khi sử dụng ADO với ASP, mọi truy xuất dữ liệu và thao tác được thực hiện trên Server.
95 trang |
Chia sẻ: oanh_nt | Lượt xem: 1237 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đồ án Ứng dụng thương mại điện tử trên mạng Internet và thiết kế một trang Web, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
i với các nước đang phát triển. Nếu không nhanh chóng tiếp cận với nền kinh tế số hóa, hay còn gọi là nền kinh tế ảo (virtual economy) thì sau khoảng một thập kỷ nữa, nước đang phát triển có thể bị bỏ rơi hoàn toàn. Khía cạnh lợi ích này mang tính tiềm tàng, tính chiến lược công nghệ và tính chính sách phát triển mà các nước chưa công nghiệp hóa cần lưu ý vì có luận điểm cho rằng: sớm chuyển sang nền kinh tế số hóa thì một nước đang phát triển có thể tạo ra một bước nhảy vọt (leapfrog), tiến kịp các nước đi trước trong một thời gian ngắn hơn.
3.4. BàI TOáN: WEBSITE BáN HàNG TRÊN MạNG INTERNET
Website bán hàng trên mạng được xây dựng trên nền tảng HTML và ASP để tận dụng tính năng đa phương tiện của môi trường Web và đáp lại những tình huống từ phía người mua hàng cũng như người bán. Website bán hàng trên mạng cũng giống như siêu thị trên Internet nhưng quy mô bán hàng của nó chỉ gói gọn trong những hàng hóa thuộc một lĩnh vực nào đó.
Hoạt động của Website bán hàng qua mạng: Do đặc điểm nổi bật của Internet là người mua và người bán không hề gặp mặt nhau và người mua không thể trực tiếp kiểm tra mặt hàng, do đó để xây dựng một cửa hàng ảo, cần phải xây dựng cho cửa hàng ảo những chức năng sau: quản lý khách hàng, quản lý mua hàng, quản lý mặt hàng, bán hàng, xúc tiến siêu thị, quản lý và xử lý đơn đặt hàng
Mục đích của việc xây dựng Website bán sách qua mạng:
Ngày nay đã xuất hiện nhiều hình thức bán hàng qua mạng Internet như các siêu thị ảo trên mạng Người tiêu dùng giờ đây không còn phải ra ngoài mới có thể mua được hàng hóa mà chỉ cần ngồi trước máy tính, truy cập vào Internet là có thể biết được chính xác thông tin về mặt hàng của mình, sau đó nếu thích có thể đặt mua trực tiếp ngay trên mạng. Xuất phát từ lý do đó em đã đi vào xây dựng Website Bookshop, với mục đích lớn nhất là giúp khách hàng có thêm thông tin về từng loại sách gắn liền với giá cả hợp lý đáp ứng nhu cầu của khách hàng một cách tốt nhất. Website có những thông tin mới nhất, các loại sách phong phú, giá cả hợp lý, cung cấp sản phẩm nhanh nhất và đúng thị hiếu người tiêu dùng trên thị trường. Website chỉ hoạt động như người môi giới. Nó tiếp nhận đơn đặt hàng của khách hàng và chuyển tiếp đơn đặt hàng đến quản trị hệ thống. Hệ thống không tham gia trực tiếp vào quá trình bán hàng. Việc bán hàng diễn ra nội bộ giữa khách hàng và người bán hàng. Mỗi website bán hàng có thể có các đối tượng riêng phù hợp với loại mặt hàng được bán. ở đây em xây dựng website bán sách và những đặc điểm của nó sẽ được trình bày chi tiết ở chương 5.
Chương 4
CÔNG NGHệ Và PHầN MềM ứNG DụNG CƠ BảN
4.1. CÔNG NGHệ ASP:
4.1.1. Giới thiệu chung:
ASP (Active Server Page) do Microsoft phát triển là môi trường ứng dụng phía server hỗ trợ mạnh trong việc ứng dụng Web. Các ứng dụng ASP rất dễ viết đồng thời có thể tích hợp các công nghệ sẵn có của Microsoft như COM một cách dễ dàng. ASP đảm nhận chức năng gửi và nhận dữ liệu giữa máy khách và máy chủ. ASP cung cấp các đối tượng cơ bản như Server, Application, Session, Request, Response xây dựng nên môi trường cho các ứng dụng Active Server.
Session
Object
Application
Object
Server
Object
Response Object
Request Object
Client
Hình 1: Mô hình các đối tượng trong ASP
Đối tượng Application:
Đối tượng này sẽ khởi tạo khi ứng dụng Web bắt đầu chạy. Khái niệm bắt đầu chương trình của ứng dụng Web được xác định khi có bất kỳ một người sử dụng Web nào đó truy nhập vào thư mục ảo. Mọi người truy nhập đều có thể sử dụng các biến được khai báo trong đối tượng này, thông qua Application (tên_biến). Trong mô hình trên, đối tượng Application dùng lưu giữ các thông tin trao đổi giữa các trang ASP và các Session thông qua biến lưu trữ của Application.
Đối tượng Session:
Đối tượng này được tạo ra tương ứng cho mỗi người truy nhập vào ứng dụng Web. Việc xác định mỗi người truy nhập được thực hiện thông qua việc kiểm tra các thông số về Browser và thời gian truy cập của Browser đó. Các biến khai báo của Session chỉ được dùng bởi người truy cập tương ứng, thông qua Session (tên_biến). Đối tượng Session dùng lưu trữ các thông tin chỉ có tác dụng đối với kết nối của một người dùng trong khoảng thời gian nào đó.
Đối tượng Request:
Đối tượng Request cung cấp các thông tin và tham số được người dùng chuyển lên trình chủ thông qua thao tác submit dữ liệu trong thẻ Form của trang Web hoặc truyền bằng chuỗi QueryString trên địa chỉ URL, như địa chỉ URL? tên_biến=giá _trị. Cách lấy giá trị biến thông qua Request (tên_biến). Dùng đối tượng Request có thể chia sẻ thông tin qua lại giữa các trang ASP trong một ứng dụng và để lấy giá trị các cookie lưu trữ trên trình khách.
Đối tượng Response:
Ngược lại, để gửi dữ liệu lại cho trình duyệt trên trình khách (client) ta có đối tượng Response. Đ ây là tập hợp các giá trị được gửi trả về cho Web Browser hiển thị, thông qua lệnh Response. Write [tên_biến]= giỏ_trị. Các hàm và thuộc tính của nó cho phép ta tạo và sửa đổi thông tin phản hồi, chuyển kết xuất từ trình chủ và trình khách.
Đối tượng Server:
Đối tượng này tạo ra các đối tượng mới nhằm tương tác với các chức năng khác, để thực hiện một nhiệm vụ nào đó trên Web Server. Đối tượng Server cung cấp các phương thức và tiện ích sau:
Create Object (objectname): Tạo một đối tượng thuộc dạng COM của Windows thực thi phía trình chủ.
MapPath (path): Chuyển đường dẫn URL ảo thành đường dẫn vật lý của ổ đĩa trên máy chủ.
Execute (path): Thực thi trang .asp trong đường dẫn path.
HTMLEncode (string): Mã hóa chuỗi string theo quy tắc chuyển đổi của URL hiểu được bởi các trình duyệt phía trình khách.
Trên đây trình bày các đối tượng mà ASP đã xây dựng sẵn. Mỗi đối tượng có những thuộc tính riêng cung cấp các tính năng hoạt động nhằm phục vụ cho ứng dụng.
Một trang ASP thông thường gồm có 3 thành phần:
Dữ liệu văn bản.
Các thẻ HTML.
Các đoạn mã chương trình phía Client đặt trong cặp thẻ >% và %>.
Trang ASP đơn thuần là một tập tin văn bản chứa mã định dạng HTML kết hợp mã thông dịch như VBScript hay Jscript. Tập tin ASP mang tên mở rộng .asp. Phần mở rộng này giúp Web Server yêu cầu trình xử lý trang ASP trước khi trả về cho trình duyệt.
Ngôn ngữ thông dụng nhất dùng để viết các mã của ASP là VBScript. Ngoài ra, ta cũng có thể viết các mã bằng ngôn ngữ như: Jscript, Perl, nếu trên Web Server có cài đặt các bộ xử lý ngôn ngữ này.
Các đoạn mã viết trong trang ASP sẽ được các bộ xử lý ngôn ngữ trên Web Server xử lý tuần tự từ trên xuống dưới. Kết quả của việc xử lý này là trả về trang HTML cho Web Server và Web Server sẽ gửi trang này về cho trình duyệt.
Ưu điểm của thiết kế ứng dụng Web bằng ASP và ngôn ngữ kịch bản (script) là ứng dụng dễ bảo trì, sửa đổi cùng với việc xử lý dữ liệu động hiệu quả.
Client
BD Server
ODBC
OLEDB
Trỡnh duyệt WEB
A
D
O
DBMS
SQL
Server
ASP
HTTP
Mô hình ứng dụng Web thể hiện qua công nghệ ASP
4.1.2. Hoạt động của một trang ASP:
Khi một trang ASP được yêu cầu bởi Web Browser, Web Server sẽ duyệt tuần tự trang ASP này và chỉ dịch các script ASP. Tùy theo người xây dựng trang Web này quy định mà kết quả do Web Server dịch sẽ trả về lần lượt cho trình duyệt của người dùng hay là chỉ trả về khi dịch xong tất cả các script. Kết quả trả về này mặc định là một trang theo cấu trúc của ngôn ngữ HTML.
4.1.3. Ưu điểm và nhược điểm của ASP:
Ưu điểm:
ASP bổ sung cho các công nghệ đã có từ trước như CGI (Common Gateway Interface), giúp người dùng xây dựng các ứng dụng web với những tính năng sinh động. Tuy nhiên, khác với CGI, các trang ASP không cần phải hợp dịch.
Dễ dàng tương thích với các công nghệ của Microsoft. ASP sử dụng ActiveX Data Object (ADO) để thao tác với cơ sở dữ liệu hết sức tiện lợi.
Với những gì ASP cung cấp, các nhà phát triển ứng dụng web dễ dàng tiếp cận công nghệ này và nhanh chóng tạo ra các sản phẩm có giá trị. Điều này hết sức có ý nghĩa trong điều kiện phát triển như vũ bão của tin học ngày nay. Nó góp phần tạo nên một đội ngũ lập trình web lớn mạnh.
ASP có tính năng mở. Nó cho phép các nhà lập trình xây dựng các component và đăng ký sử dụng dễ dàng. Hay nói cách khác ASP có tính năng COM ( Component Object Model).
Nhược điểm:
ASP chỉ chạy và tương thích trên môi trường Windows, điều này làm ASP bị hạn chế rất nhiều.
Dùng ASP chúng ta sẽ gặp không ít khó khăn trong việc can thiệp sâu vào hệ thống như các ứng dụng CGI.
ASP không được sự hỗ trợ nhiều từ các hãng thứ ba.
Các ứng dụng ASP chạy chậm hơn công nghệ Java Servlet.
Tính bảo mật thấp. Không giống như CGI hay Java Servlet, các mã ASP đều có thể đọc được nếu người dùng có thể truy cập vào web server.
Có lẽ đây là lý do quan trọng nhất để người dùng không chọn công nghệ ASP.
4.2.HTML:
HTML (HyperText Markup Language) 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. Web là dịch vụ mang tính đồ họa cao trong các dịch vụ Internet, cho phép ngườI dùng có thể tự tạo cho riêng mình họ những trang Web. HTML cho phép áp dụng siêu liên kết cho tài liệu và trình bày tài liệu với phông chữ, hình ảnh, phù hợp với hệ 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ư 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 FontPage, DreamWeaver có cung cụ soạn thảo đơn giản cho phép tạo và hiệu chỉnh tập tin HTML.
HTML tạo trang Web bằng cách sử dụng các thẻ quy ước như:
Thẻ cấu trúc: Định rõ cấu trúc của tài liệu.
Thẻ hình thức văn bản: Định rõ dạng hiển thị văn bản.
Thẻ đoạn văn bản: Định rõ tiêu đề, đoạn và dấu ngắt dòng.
Thẻ phông chữ: Định rõ cỡ chữ và màu chữ.
Thẻ danh sách: Định rõ các danh sách theo thứ tự hoặc không theo thức tự và danh sách định nghĩa.
Thẻ bảng biểu: Xác định bảng tiêu chuẩn.
Thẻ liên kết: Định rõ các liên kết định hướng di chuyển đến tài liệu khác.
Thẻ hình ảnh: Định rõ vị trí truy cập hình ảnh và cách hiển thị hình ảnh
Một số tag thường dùng như sau:
Tag ý nghĩa
Khai báo data được viết bằng HTML
… Miêu tả Header của trang Web
… Tiều đề trang Web
… Thân trang Web
… Lập thành bảng
… Lập theo dòng
… Lập theo cột
… Mức tiều đề cấp n (từ 1 đến 6)
… In đậm
… In nghiêng
… Gạch dưới
… Danh sách hông có thứ tự.
… Danh sách có thứ tự
… Danh sách ngang.
… Phần tử của danh sách.
… Xuống dòng
ảnh tĩnh (.gif,.jpg)
Hyperlink
… Dữ liệu không format lại
… Tạo một applet
4.3 NGÔN NGữ LậP TRìNH VBSRIPT
4.3.1 Giới thiệ về VBScript
VBScript là một thành phần mới nhất trong họ ngôn ngứ lập trình Visual Basic, cho phép tạo ra những script sử dụng được trên nhiều môi trường khác nhau như các script chạy trên Browser của client ( Ms Internet Explorer 6.0) hay trên Web Server (Ms Internet Information Server 5.0).
Cách viết VBScript tương tự như cách viết các ứng dụng trên Visual Basic hay Visual Basic for Application. VBScript giao tiếp với các ứng dụng chủ (host application) bằng cách sử dụng các Active X Scripting.
4.3.2 Các kiểu dữ liệu của VBScript
VBScript chỉ có một loại dữ liệu được gọi là Variant. Variant là một
kiểu dữ liệu đặc biệt có thể chứa đựng những loại thông tin khác nhau tùy theo cách sử dụng. Dĩ nhiên nó cũng là kiểu dữ liệu được trả về bởi tất cả các hàm. ở đây đơn giản nhất một Variant có thể chứa thông tin số hoặc chuỗi tùy theo văn cảnh sử dụng. Các loại dữ liệu (subtype) mà Variant có thể biểu diễn là: Empty, null, boolean, byte, currency, date, time, string, error VBScript có sẵn một số hàm để chuyển từ subtype, này sang subtype khác.
4.3.3 Biến trong VBScript
Một biến là một tên tham khảo đến một vùng nhớ, là nơi chứa thông tin của chương trình mà thông tin này có thể được thay đổi trong thời gian script chạy. Ví dụ: có thể đặt một biến tên là ClickCount để đếm số lần user click vào một object trên một trang Web nào đó. Vị trí của biến trong bộ nhớ không quan trọng, ta chỉ truy xuất đến nó thông qua tên mà thôi. Trong VBScript biến luôn có kiểu là Variant.
Khai báo biến: dùng phát biểu Dim, Public(cho biến toàn cục) hay Private(cho biến cục bộc).
Tên biến phải bắt đầu bằng một kí tự chữ, trên tên biến không chứa dấu chấm, chiều dài tối đa là 255 kí tự và 1 biến là duy nhất trong phạm vi mà nó được định nghĩa.
Biến trong VBScript có thể là đơn hay là dãy. Khi khai báo Dim A(10) thì VBScript tạo ra một dãy có 11 phần tử (vì phần tử đầu có chỉ số là 0v). Một dãy biến có thể mở rộng tối đa đến 60 chiều, nhưng thường dùng từ 2 đến 4 chiều. Có thể thay đổi kích thước một dãy trong thời gian chạy bằng cách dùng phát biểu ReDim.
Ví dụ:
Dim MyArray(25)
…
ReDim MyArray(30) hay
ReDim Preserve MyArray(30) giữ lại các giá trị trong dãy cũ
4.3.4 Hằng trong VBScript
Hằng là một tên có nghĩa đại diện cho 1 số hay chuỗi và không thể thay đổi trong quá trình chạy. Tạo một hằng bằng phát biểu Const.
Ví dụ:
Const MyString=” ây là các chuỗi
4.3.5 Các toán tử trong VBScript
Độ ưu tiên của các toán tử
VBScript có các toán tử khác nhau như số học, luận lý, so sánh. Nếu muốn chỉ định thứ tự ưu tiên của toán tử một cách rõ ràng thì dùng dấu ngoặc ( ), còn không thì thứ tự ưu tiên như sau (từ trên xuống dưới, từ trái sáng phải):
Số học: ^, - (âm), * (nhân), / (chia), mod, +, &
So sánh: =, , ,=, is
Luật lý: Not, And, Or, Xor, Eqv, Imp
Toán tử * và /, +,- có cùng đọ ưu tiên và được thực hiện từ trái sang phải
b. Bảng các toán tử
Toán học
So sánh
Logic
Diễn giải
Kí hiệu
Diễn giải
Kí hiệu
Diễn giải
Kí hiệu
Mũ
^
So sánh bằng
=
Phủ định
Not
Đ ảo dấu
-
So sánh khác
Phép và
And
Nhân
*
So sánh nhỏ hơn
<
Phép hoặc
Or
Chia
/
So sánh lớn hơn
>
Phép Xor
Xor
Chia nguyên
\
Nhỏ hơn hoặc bằng
<=
Tương đương
Eqv
Phần dư
Mod
Lớn hơn hoặc bằng
>=
Cộng
+
So sánh 2 đối tượng
Is
Trừ
-
Nối chuỗi
&
4.3.6 Các cấu trúc điều khiển
If then Else
Nếu ta muốn chạy một lệnh đơn khi điều khiển If là đúng thì ta chỉ sử dụng một lệnh If then
Nếu muôn thực thi nhiều hơn một dòng lệnh thì phải sử dụng End IF
Ta cúng có thể dùng If then Else để xác định thực thi một trong 2 khối lệnh. Một khối thực thi khi điều khiển If là True. Khối còn lại thực thi khi điều kiện If là False.
Select case: cho phép lựa chọn nhiều trường hợp để ra quyết định thực thi.
Do Loop: Lặp trong khi hoặc cho đến khi điều kiện là True.
While End: Lặp trong hi điều kiện kiểm tra của While còn đúng.
For Next: Lặp lại với số lần xác định
For Each Next: Lặp với các phần tử trong tập hợp.
Exit Do: Thoát khỏi vòng lặp Do Loop.
Exit For: Thoát khỏi vòng lặp For Next.
4.3.7 Hàm và thủ tục trong VBScript
Thủ tục
Chúng ta dùng cú pháp Sub End. Sub để khai báo thủ tục trong VBScript. Cú pháp function End. Function được dùng để khai báo hàm.
Ví dụ:
<%
‘Xây dựng hàm chuyển đổi độ C sang độ F
Function celsius(fDegrees)
Celsius=(fDegrees-32)*5/9
End Function
Thủ tục chuyển đổi
Sub covertTemp()
Response.Writer The remperature is & Celsius(95) & degrees C.”
End Sub
‘Triệu gọi thủ tục
call ConvertTemp
%>
Cách dùng Sub và Function
Function phải luôn được đặt bên phải của phép gán.
Ví dụ:
Temp= Celsius(fDegrees)
Hoặc:
MsgBox The Celsius temperature is Celsius(fDegrees) degrees
Để gọi một Sub từ một Procedure khác, ta gõ tên của Sub kèm theo các đối số mà không cần dấu ngoặc. Nếu dùng lệnh Call, ta phải đặt các đối số trong dấu ngoặc.
Ví dụ:
Call MyProc(firstarg, secondarg)
MyProc firstarg, secondarg
4.4 Sử DụNG ADO ĐÊ TRUY NHậP Dữ LIệU
ADO (Access Data Object) là đối tượng Active X truy nhập dữ liệu mới nhất mà Microsoft đưa ra nhằm hỗ trợ tích cực cho việc tương tác với dữ liệu qua bất kì một nhà cung cấp dữ liệu nào (DB Provider). ADO cho phép viết các ứng dụng truy nhập dữ liệu từ các nguồn dữ liệu OLE DB, bao gồm các nguồn dữ liệu ODBC. Việc kết nối ODBC thông qua các driver cơ sở dữ liệu, là các chương trình đưa thông tin từ ứng dụng Web tới cơ sở dữ liệu, là các chương trình đưa thông tin từ ứng dụng Web tới cơ sở dữ liệu. Việc kết nối này sử dụng tên nguồn dữ liệu DSN (Data Souce Name). DSN chứa những thông tin về bảo mật, việc tham chiếu tới cơ sở dữ liệu vật lý. Khi sử dụng ADO với ASP, mọi truy xuất dữ liệu và thao tác được thực hiện trên Server.
4.4.1 Mô hình ADO
Mỗi đối tượng Connection, Command, Recordset và field đều có Properties.
Fields
Recordset
Paramenters
Command
Errors
Connection
Mô hình ADO
4.4.2 Các thành phần của ADO
Đối tượng là một nhóm các hàm và biến. Một số đối tượng đã được xây dựng
sẵn và có thể sử dụng ngay mà không cần khởi tạo: Request, Response,
Session, Application, Server. Một số đối tượng cần khởi tạo nếu muốn sử
dụng Dictionary, Connection, Recordset...
4.4.3 Đối tượng Request
Request và Response là 2 đối tượng được dùng nhiều nhất trong lập trình
ASP, dùng trao đổi dữ liệu giữa trình duyệt và server.
Request cho phép lấy về các thông tin từ client. Khi browser gửi một yêu cầu
trang web lên server ta gọi là 1 request
Chúng ta thường sử dụng các lệnh request sau:
4.4.3.1 Request.QueryString
Cho phép server lấy về các giá trị được gửi từ người dùng qua URL hoặc form
(method GET).
Ví dụ ở trang home.asp chúng ta đặt một dòng liên kết sang trang
Products.asp với thẻ sau:
Nhấn vào đây để sang trang Products.asp
biến cid có giá trị là TAP được người dùng gửi tới server kèm
theo URL. (người dùng có thể gõ thẳng địa chỉ
trên thanh Address
của trình duyệt)
Server muốn nhận lại giá trị này thì dùng request.QueryString ở trang
default.asp
<%dim a
a=request.querystring(“BookName)
response.write Tên sách &a
%>
Tương tự như vậy nếu người dùng gửi giá trị Nghệ thuật trang trí nhà cửathông qua một biến
trong form và chọn method GET
4.4.3.2 Request.Form
Cho phép server lấy về các giá trị được gửi từ người dùng qua form (method
POST).
Chẳng hạn file FeedBack.asp:
File product.asp làm nhiệm vụ xử lý thông tin từ Form này sẽ dùng câu lệnh
request.form để nhận lại thông tin người dùng đã gõ vào:
<%Dim x
x=Request.form(name) %>
response.write Tên người viết &x
%>
4.4.4 Response
Đối tượng Response dùng để gửi các đáp ứng của server cho client.
Chúng ta thường dùng một số lệnh Response sau:
4.4.4.1 Response.Write
Đ ưa thông tin ra màn hình trang web
Ví dụ để đưa câu chào Hello ra màn hình ta dùng lệnh sau:
Hiển thị thời gian trên server ra màn hình:
hoặc
now là hàm lấy ngày giờ hệ thống trên server
4.4.4.2 Response.Redirect
Chuyển xử lý sang một trang Asp khác.
Ví dụ trang xulyform.asp sau khi kiểm tra form đăng nhập thấy người dùng
không có quyền vào website thì nó sẽ chuyển cho file Error.asp(file này hiển
thị một thông báo lỗi user không có quyền truy cập)
4.4.4.3 Response.End
Ngừng xử lý các Script. Dùng lệnh này khi muốn dừng xử lý ở một vị trí nào
đó và bỏ qua các mã lệnh ASP ở phía sau. Đ ây là cách rất hay dùng trong
một số tình huống, chẳng hạn như debug lỗi
4.4.4.4 Đối tượng Session
Session là một phiên làm việc giữa từng người dùng và web server, nó bắt
đầu khi người đó lần đầu tiên truy cập tới 1 trang web trong website và kết
thúc khi người đó rời khỏi website hoặc không tương tác với website trong
một khoảng thời gian nhất định (time out). Như vậy tại một thời điểm một
website có bao nhiêu người truy cập thì có bấy nhiêu phiên ứng với mỗi
người, các phiên này độc lập nhau. Để lưu những thông tin tác dụng trong 1
18 ASP
phiên, người ta dùng đối tượng Session, ví dụ khi một user bắt đầu session
với việc login vào hệ thống, và user đã login đó cần được hệ thống ghi nhớ
trong toàn phiên làm việc (nhằm tránh việc người dùng phải đăng nhập lại
mỗi khi đưa ra một request).Giá trị của biến kiểu session có phạm vi trong
tất cả các trang ASP của ứng dụng, nhưng không có tác dụng đối với phiên
làm việc khác.
Ví dụ, sử dụng biến session sau đây đếm số lần 1 người đã truy cập vào
trang web:
Default.asp
session(xx”) đại diện cho số lần mà một user đã truy cập vào trang
home.asp. Với 2 người dùng khác nhau thì giá trị session (xx”) lại khác nhau.
Thật vậy, A có thể truy cập 10 lần (session(xx”) =10) trong khi B có thể
truy cập 2 lần thôi (session(xx”) =2)
Server kết thúc và hủy bỏ đối tượng session khi:
- Người dùng không triệu gọi các trang của ứng dụng hoặc cập nhật làm mới
(refresh) lại thông tin của trang trong một thời gian nhất định. Khi một
session hết thời gian hiệu lực nó sẽ được xem như hết hạn sử dụng, tất cả
các biến lưu trong session và bản thân session sẽ bị hủy bỏ. Có thể kiểm tra
và tăng giảm thời gian Timeout của Session tính bằng giây như sau:
<%
Session.Timeout = 500
%>
- Trang ASP gọi đến phương thức Abandon của Session .
<%
Session.Abandon
%>
4.4.4.5 Đối tượng Application
Application đại diện cho toàn bộ ứng dụng, bao gồm tất cả các trang web
trong website. Để lưu trữ những thông tin có tác dụng trong toàn ứng dụng,
tức là có giá trị trong tất cả các trang asp và tất cả các phiên, người ta dùng
đối tượng Application
Điểm khác của biến application so với biến session là session chỉ có tác dụng
đối với mỗi phiên, còn biến application có tác dụng với mọi phiên.
Ví dụ, để đếm xem có bao nhiêu người truy cập vào website, chúng ta có thể
dùng một biến Application. Mỗi khi một người dùng mới truy cập vào website
ta tăng biến này lên 1 đơn vị để chỉ rằng đã có thêm 1 người truy cập.
Trang home.asp muốn hiển thị số người truy cập chỉ cần in giá trị của biến
này
<% response.write Số người đã truy cập vào website là:”&application(xx”)
%>
Với 2 phiên khác nhau thì giá trị application (xx”) là như nhau. Thật vậy, A và
Chương 1: Giới thiệu ASP 19
B khi truy cập vào trang home.asp đều thấy: “Số người đã truy cập vào
website là 3 (trong trường hợp application (xx”) =3)
Việc khởi tạo và kết thúc 1 biến application có thể viết trong các hàm sự kiện
Application_onStart và Application_onEnd được định nghĩa trong file
global.asa
Khóa Application:
Do biến application có thể được dùng chung bởi nhiều phiên nên sẽ có trường
hợp xảy ra xung đột khi có 2 phiên cùng thay đổi giá trị một biến application.
Để ngăn chặn điều này chúng ta có thể dùng phương thức Application.lock để
khóa biến application trước khi thay đổi nó. Sau khi sử dụng xong biến này
có thể giải phóng khóa bằng phương thức application.unlock (xem ví dụ sau).
4.4.4.5 Đối tượng Dictionary
Đối tượng Dictionary lưu trữ thông tin theo từng cặp khóa / giá trị. Nó khá
giống với mảng nhưng có khả năng xử lý linh hoạt đối với những cặp dữ liệu
có quan hệ kiểu từ điển (cặp khóa / giá trị ví dụ như: mã sách / tên sách), trong đó khóa được xem là từ cần tra và giá trị chính là nội dung của
từ tra được trong từ điển.
Muốn sử dụng đối tượng Dictionary chúng ta phải khởi tạo nó:
<%set d=server.createObject("Scripting.Dictionary")
d.add "work","Lam viec"
d.add "learn","Hoc tap" tương tự như mảng nhưng mỗi phần tử là một cặp
khóa/giá trị
response.write "work nghĩa tiếng Việt là: "&d.item("work")
response.write "learn nghĩa tiếng Việt là: "&d.item("learn")
set d=nothing
%>
4.4.5.1 Đối tượng Server
Đối tượng Server được dùng để truy cập các thuộc tính và phương thức của
server .Ta thường dùng 2 lệnh sau:
4.4.5.2 Server.CreateObject
Khởi tạo 1 đối tượng.
Ví dụ:
Tạo một đối tượng Connection:
Tạo một đối tượng Dictionary:
4.4.5.3 Server.Mappath
biến đường dẫn tương đối thành tuyệt đối.
Ví dụ:
<%str= server.mappath("BS.mdb")
Response.write str%>
Sẽ cho kết quả: “C:\ BOOKSHOP \BS.mdb trong trường hợp file nhanvien.mdb
nằm trong thư mục C:\WEB
Ta thường áp dụng server.mappath trong những trường hợp xử lý đường dẫn
tương đối, ví dụ là chuỗi kết nối vào database
connstr="provider=microsoft.jet.oledb.4.0; data
source="&server.mappath("BS.mdb")&";"
4.4.6 Sử dụng Database với ASP
Hầu hết các ứng dụng Web động đều lưu trữ dữ liệu trong Database. Vì vậy
các thao tác kết nối vào Database, xem, thêm, sửa, xóa dữ liệu trong các
bảng là phần quan trọng đối với các ngôn ngữ lập trình web như ASP.
Chúng ta sẽ học các kỹ thuật sử dụng Asp để thao tác với dữ liệu trong
Database thông qua kiến trúc ADO.
4.4.6.1 Các cú pháp căn bản để truy xuất dữ liệu từ DB
Để thao tác với dữ liệu trong các bảng của DB, có 4 thao tác chính với câu
lệnh SQL tương ứng như sau:
(Lấy ví dụ với một Database cụ thể BS.mdb, trong đó có một
bảng tblBooks (ISBNNumber:text, BookName: Memo)
4.4.6.2 Lựa chọn
Lấy tất cả các bản ghi trong bảng:
“Select * from tblBooks
Nếu lựa chọn có điều kiện:
“Select * from tblBooks where ProductID = '" & cid & "'
Nếu chỉ lựa chọn một số trường trong bảng:
“Select BookName from tblBooks where ISBNNumber =’ 0089974
4.4.6.3 Thêm dữ liệu vào bảng
“Insert into tblBooks values (001,NgoaiNgu) “
4.4.6.4 Sửa dữ liệu
“Update tblBooks set Ten=’S achhay where ISBNNumber =001
4.4.6.4 Xoá dữ liệu
“Delete from tblBooks where ISBNNumber =001
Chúng ta có thể sử dụng các lệnh SQL phức tạp hơn để có được kết quả
mong muốn như sử dụng các lệnh join, order by, group by, having...
4.4.6.3 Đối tượng Connection
Đối tượng Connection cho phép tạo kết nối đến một DB.
Các bước sử dụng Connection:
- Khai báo đối tượng Connection
- Khởi tạo
- Tạo chuỗi kết nối
- Mở Connection với chuỗi kết nối trên
- Sử dụng Connection
- Đóng và Hủy Connection
Ví dụ sau đây kết nối đến database Access BS.mdb (database
này nằm trong cùng thư mục với file Asp)
<%
dim conn khai báo
set conn=server.createObject("ADODB.connection") khởi tạo
stringconn="provider=microsoft.jet.OLEDB.4.0;data
source="&server.mappath("BS.mdb")&";" chuỗi kết nối
conn.open stringconn mở connection
các thao tác với B sử dụng connection này
.......
conn.close đóng connection
Set conn=nothing hủy connection
%>
(chuỗi stringconn = viết trên 1 dòng, trong đó: data source = chú ý
có một dấu cách giữa data và source, chuỗi này chỉ đúng với Access)
4.4.6.4 Đối tượng Recordset
Đối tượng Recordset thường dùng để xem, thêm, sửa, xóa các bản ghi trong
bảng dữ liệu của Database. Nó trỏ đến tập hợp các bản ghi là kết quả trả về
từ câu lệnh select
Các bước sử dụng đối tượng Recordset :
- Khai báo đối tượng Recorset
- Khởi tạo
- Tạo sql query
- Mở Recordset với chuỗi sql query và connection đã mở
- Sử dụng Recordset
- Đóng và Hủy Recordset
Ví dụ sau đây cho phép lấy các bản ghi trong bảng và hiển thị ra ngoài trang web.
<%Dim rs khai báo Recordset
set rs=server.createObject("ADODB.Recordset") ‘Khởi tạo
SQLstring="select * from tblBooks" SQL query
rs.open SQLstring , conn ‘Mở Recordset
dùng vòng lặp để hiển thị toàn bộ các bản ghi ra màn hình
do while not rs.EOF
response.write RS(“BookName)
response.write RS(“AuthorID”)
response.write RS(“PublisherID”)
response.write RS(“Price)
response.write ”
rs.movenext dịch con trỏ rs tới bản ghi tiếp theo
loop
rs.close đóng recordset
set rs=nothing hủy recordset
%>
Chúng ta có thể kết hợp giữa script và thẻ html để dữ liệu được hiển thị ra ngoài trang
web với giao diện theo ý muốn:
Ten Sach
Tac Gia
Nha XB
Gia Bia
<%rs.movenext
loop
rs.close
%>
Sau đây là một ví dụ hoàn chỉnh liệt kê các user trong bảng tblCustomers ra trang
web:
Connection.asp
<%
dim conn
Sub openConn()
set conn=server.createobject("adodb.connection")
connstr="provider=microsoft.jet.oledb.4.0; data
source="&server.mappath("BS.mdb")&";"
conn.open connstr
End Sub
Sub destroyConn()
conn.close
set conn=nothing
End Sub
%>
4.4.6.5 Thêm sửa xóa dữ liệu trong DB:
Với một connection đã mở chúng ta có thể dùng nó để thực thi câu lệnh SQL
dạng insert, update, delete:
Thêm dữ liệu:
Sửa dữ liệu:
<%Conn.execute Update tblBooks set Ten=’ Chu dịch dịch chú where
ISBNNumber= ‘ISBNNumber %>
Xoá dữ liệu:
Ngoài ra chúng ta có thể dùng Recordset để thêm, sửa, xóa dữ liệu trong database
bằng cách duyệt qua tập hợp các bản ghi trong bảng
Thêm dữ liệu:
<%Dim RS
set rs=server.createObject("ADODB.recordset")
SQLstring="select * from tblBooks"
rs.open SQLstring ,conn,3,2
rs.open SQLstring ,conn,adOpenStatic,adLockPessimistic
rs.addnew Thêm một bản ghi
rs(“ISBNNumber)= 001 gán giá trị cho các trường của bản ghi
rs(“BookName)=”Sách viễn tưởng
rs.update Xác nhận thêm xong
rs.close đóng recordset
%>
Sửa:
<% set rs=server.createObject("ADODB.recordset") ‘Khởi tạo
SQLString="select * from tblBooks where ISBNNumber=001 "
‘lấy ra bản ghi cần sửal
rs.open SQLString ,conn,3,2
rs(“BookName)=”Sách khoa học sửa lại giá trị trường BookName
rs.update xác nhận sửa xong
rs.close đóng recordset
%>
Xóa:
<% set rs=server.createObject("ADODB.recordset") ‘Khởi tạo
SQLString="select * from tblBooks where ISBNNumber=001 " Cõu lệnh
SQL lấy ra đúng bản ghi cần xóa
rs.open SQLString ,conn,3,2
rs.delete xóa bản ghi này
rs.close đóng recordset
%>
4.4.6.6 Tìm kiếm dữ liệu trong database
Để tìm kiếm dữ liệu trong bảng của Database chúng ta dựa vào câu lệnh
SQL:
sqlString = "SELECT customerid, username, password, fullname, city FROM tblCustomers "&_
"WHERE username = '" & username & "' AND password = '" & password & "'"
Set RSLog = Con.execute(sqlString)
Ví dụ đoạn chương trình sau cho phép hiển thị những tên sách, tác giả,nhà xuất bản, giá bìa trong bảng
“tblCustomers của DB “BS.mdb có tên được tìm kiếm bởi từ khoá Lập trình ứng dụng Pascal (Ví
dụ: Lập trình Web, Người Việt Nam, Người Bắc Kinh ở New York)
<%
set conn=server.createobject("adodb.connection")
connstring="provider=microsoft.jet.oledb.4.0;data
source="&server.mappath("BS.mdb")&";"
conn.open connstring
set rs=server.createobject("adodb.recordset")
rs.open " sqlString = "SELECT customerid, username, password, fullname, city FROM tblCustomers "&_
"WHERE username = '" & username & "' AND password = '" & password & "'"
Set RSLog = Con.execute(sqlString) ",conn
do while not rs.eof
response.write rs("customerid ")
response.write " "
response.write rs("username ")
response.write " "
response.write rs("Fullname")
response.write " "
response.write rs("City")
response.write " "
response.write rs("Lop")
response.write ""
rs.movenext
loop
rs.close
%>
Thông thường người sử dụng nhập từ khoá cần tìm kiếm vào một trường của
form. như vậy ta chỉ việc dùng lệnh request.form để lấy lại từ khoá cần tìm
kiếm và đưa vào câu lệnh SQL ở trên. Chẳng hạn người sử dụng nhập từ
khoá cần tìm vào trường BookName trong form thì chúng ta sẽ mở bảng bằng câu
lệnh SQL sau:
sqlString = "SELECT * FROM tblBooks, tblBookCategories, tblPublishers, tblAuthors "&_
"WHERE tblBooks.Keyword LIKE '%" & searchfor & "%' AND tblBooks.CategoryID = tblBookCategories.CategoryID "&_
"AND tblBooks.PublisherID = tblPublishers.PublisherID AND tblBooks.AuthorID = tblAuthors.AuthorID"
Nếu không tìm thấy bản ghi nào thì giá trị rs. EOF sẽ true.
“Không có cuốn sách nào như thông tin tìm kiếm
Chương 5
PHÂN TíCH THIếT Kế Hệ THốNG
5.1 YÊU CầU CủA WEBSITE
Chức năng của Website là một hình thức thương mại điện tử B2C(Bussieness to Customer)
Website có giao diện thân thiện với khách hàng, màu sắc hài hòa, sinh động, đảm bảo tính thẩm mỹ cao đúng phong cách của một website bán sách.
Thông tin luôn được cập nhật và luôn đáp ứng được nhu cầu tìm kiếm thông tin. Bên cạnh đó tiết kiệm được thời gian và chi phí đi lại cho khách hàng.
Dễ dàng nâng cấp và mở rộng hệ thống. Khi có nhu cầu triển khai, bổ sung các dịch vụ, ứng dụng mới của thương mại điện tử và các tiện ích khác thì có thể phát triển các dịch vụ, ứng dụng dựa trên công nghệ, hệ thống hiện tại.
Đ ảm bảo tính thuận tiện trong sử dụng và an toàn thông tin cho khách hàng khi mua sách
Hệ thống có khả năng quản trị thận tiện, dễ dàng. Người quản trị có thể theo dõi toàn bộ hoạt động của hệ thống
5.2 NộI DUNG WEBSITE
5.2.1 Trang chủ
Trang chủ cho phép người dùng có khả năng truy cập tới một chuyên mục bất kì hoặc tìm kiếm các thông tin liên quan có trong Website. Nội dung của trang chủ gồm có những phần sau: Đ ăng nhâ p, Danh mục sách, Menu chính, Giỏ hàng, Thống kê Website, Tìm kiếm, Sách bán chạy, Sách mới.
5.2.2 Đ ăng nhập
Khách hàng có thể đăng nhập userName của mình ở trang này khi bạn có một Account của mình, và bạn có thể bắt đầu tham gia vào gian hàng để mua những thứ mà bạn cần
5.2.3 Danh mục sách
Cung cấp các mục sách cập nhật nhất hiện nay, ở đây bạn có thể chọn lựa những cuốn sách mà bạn ưa thích nhất để giao dịch với chúng tôi.
5.2.4 Menu chính
Chứa các control điều khiển, giúp cho người mua hàng được thuận tiện hơn khi mua
5.2.5 Giỏ hàng
Thông báo cho người mua biết được mình đang mua sách gì và số tiền là bao nhiêu
5.2.6 Tìm kiếm
ở đây bạn có thể thuận tiện tìm những loại sách một cách nhanh nhất, khi bạn đã biết tên sách, nhà xuất bả n, tác giả . Chức năng này sẽ giúp bạn tìm một cách nhanh nhất mà bạn cần
5.2.7 Phản hồi
Bạn có thể nói những ý kiến của mình ở đây, và những ý kiến của bạn sẽ được gửi lên cho ban quản trị.
5.2.8 Chức năng chính của Website
Website được xây dựng để phục vụ cho 2 nhóm sau:
Quản trị hệ thống
Khách mua hàng
a. Quản trị hệ thống
Quản trị hệ thống là người làm chủ website, họ có quyền kiểm soát mọi hoạt động của hệ thống. Để chức năng của mình thì họ phải đăng nhập vào hệ thống bằng username và password:
Chức năng của người quản trị đối với sách:
Thêm sách
Thêm nhà xuất bản
Thêm tên tác giả
Thêm loại sách
Chức năng của người quản trị xem kho hàng:
Xem nhà xuất bản
Xem tác giả
Xem loại sách
Xem sách
Chức năng của người quản trị về khách hàng:
Hiển thị thông tin khách hàng
Chức năng của người quản trị về đơn đặt hàng
Hiện thị thông tin các đơn đặt hàng của khách
Chức năng của người quản trị đối với phản hồi của khách hàng
Xóa bài viết đó nếu không phù hợp
b. Khách mua hàng
Khách mua hàng là những người vào hệ thống để tìm kiếm các sản phẩm mua và đặt hàng với hệ thống
Trang phục vụ khách hàng phải thỏa mãn các chức năng sau:
Hiển thị các thông tin liên quan đến cuốn sách mà khách hàng cần tìm (tên sách, tác giả, giá tiền, nhà xuất bản)
Tìm kiếm theo tên, tác giả, chuyên nghành, nhà xuất bản
Tạo feedback để khách hàng trao đổi ý kiến
Đặt hàng cho khách hàng muốn mua tranh
5.3 PHÂN TíCH THIếT Kế Hệ THốNG
5.2.1 Sơ đồ phân cấp chức năng
Website
Đăng Nhập
Danh mục sỏch
Chọn sỏch
Tỡm kiếm
Giỏ mua hàng
Thanh toỏn
Quản trị
Quản lý sỏch
Thoỏt
5.2.2 Luồng dữ liệu
Biểu đồ luồng dữ liệu là một phương pháp mô tả hệ thống thông tin dưới hình học, cho phép diên tả các luồng dữ liệu thông qua các chức năng của hệ thống. Nó là một công cụ trợ giúp cho quá trình phân tích, thiết kế, làm tài liệu trao đổi giữa những người làm phân tích thiết kế.
Những kí hiệu trong mô hình luồng dữ liệu:
Luồng dữ liệu
Cơ sở dữ liệu
Chức năng
Thực thể
Khỏch hàng
Hệ thống bỏn hàng của Website
Mua hàng
Bỏn hàng
Biểu đồ luồng dữ liệu mức ngữ cảnh GalleryShop
Thống
kờ
Ghi
Chọn
Tỡm kiếm
Chọn
Đồng ý thanh toỏn
Ghi/Sửa/Xúa
Khỏch hàng
Tỡm kiếm
CSDL Sỏch
Chọn mua
Thống kờ
Thanh toỏn
Giỏ mua hàng
CSDL Khỏch hàng
CSDL Đơn hàng
Sơ đồ luồng dữ liệu mức đỉnh GalleryShop
Thụng tin đặt hàng
Chi tiết húa đơn
Khỏch hàng
Húa đơn bỏn hàng
Thụng tin đặt hàng
Lập húa đơn
CSDL Sỏch
Đơn đặt hàng
Sơ đồ phân rã chức năng Gallery Shop
CHƯƠNG 6
THIếT Kế CƠ Sở Dữ LIệU
6.1 THIếT Kế CáC THựC THể
6.1.1 tblBooks:
ISBNNumber
BookName
PublisherID
CategoryID
Pages
Quantity
PublishYear
AuthorID
EditionNumber
Price
PictureURL
Keyword
BookBrief
TableOfContent
DateInsert
6.1.2 tblCustomers:
CustomerID
Username
Password
Fullname
Sex
Email
Address
City
Phone
Habit
6.1.3 tblAuthors:
AuthorID
AuthorName
AuthorEmail
AuthorWebsite
AuthorBio
6.1.4 tblBookCategories:
CategoryID
ClassName
CategoryName
6.1.5 tblFeedback:
FeedbackID
CustomerName
CustomerEmail
Comment
FeedbackDate
6.1.6 tblOrderDetails:
OrderID
ISBNNumber
Price
Quantity
Total
Discount
6.1.7 tblOrders:
OrderID
CustomerID
OrderDate
StatusID
6.1.8 tblPublishers:
PublisherID
PublisherName
Address
Phone
Email
Website
6.1.9 tblStatus:
StatusID
StatusName
6.2 Các mối liên kết thực thể
6.2.1 Xét 2 thực thể tác giả và sách:
Mỗi sách chỉ có một tác giả duy nhất, trong khi một tác giả thì có nhiều sách khác nhau
Tác giả: Author
Mã tác giả: aut
Mã sách: bid
tblBooks(#bid)
TblAuthor(#aut)
6.2.2 Xét hai thực thể khách hàng và đơn hàng:
Mỗi một đơn hàng chỉ dành cho một khách hàng. Ngược lại ta thấy một khách hàng có thể có nhiều đơn hàng vì khách hàng có thể mua rất đặt mua rất nhiều sách khác nhau.
Khách hàng: Customer
Đ ơn hàng: Order
Mã khách hàng: id
Mã đơn hàng: vieworder
tblCustomers(#id)
tblOrders(#vieworder)
6.2.3 Xét hai thực thể Sách và Đ ơn hàng:
Mỗi sách có thể có một hoặc nhiều phiếu nhập đơn hàng khác nhau. Mặt khác thì đơn hàng có thể có nhiều sách.
Mã sách: bid
Mã đơn hàng: vieworder
tblOrder(#vieworder)
tblBooks(#bid)
6.3 SƠ Đồ LIÊN KếT CáC THựC THể
6.4 XÂY DựNG CáC BảNG CƠ Sở Dữ LIệU
6.4.1 Bảng tblAuthor(tác giả):
6.4.2 Bảng tblBookCategories(phân loại sách):
6.4.3 Bảng tblBooks(sách):
6.4.5 Bảng tblCustomers(khách hàng):
6.5.5 Bảng tblFeedBack(phản hồi):
6.5.6 Bảng tblOrder(đơn hàng):
6.5.7 Bảng tblOrderDetails(chi tiết đơn hàng):
6.5.8 Bảng tblPublishers(nhà xuất bản):
6.5.9 Bảng tblStatus(trạng thái đơn hàng):
Chương 7
KếT QUả CàI ĐặT WEBSITE
7.1 MộT Số GIAO DIệN CHíNH
7.1 Trang chủ
7.2. ăng Ký
7.3. ăng Nhập
7.4.Thông tin sản phẩm
7.5.Giỏ mua hàng
7.6.Phản hồi
7.7.Quản trị đăng nhập
7.8.Xem thông tin sản phẩm
7.9.Xem thông tin nhà xuất bản
7.10.Xem đơn đặt hàng
7.11.Sửa thông tin đơn đặt hàng
7.12.In đơn đặt hàng
7.13.Thông tin khách hàng
7.14.Sửa thông tin khách hàng
7.2 Cc on m chng trnh
7.2.1 Trang default.asp
<%Session.CodePage = 65001
cid = Request("cid")
IF Session("fullname") = "" THEN
username = Request("username")
password = Request("password")
sqlString = "SELECT customerid, username, password, fullname, city FROM tblCustomers "&_
"WHERE username = '" & username & "' AND password = '" & password & "'"
Set RSLog = Con.execute(sqlString)
IF NOT RSLog.EOF THEN
Session("fullname") = RSLog("Fullname")
Session("username") = RSLog("Username")
Session("city") = RSLog("City")
Session("id") = RSLog("CustomerID")
RSLog.Close
END IF
END IF
%>
<%
If Session("default") = "" THEN
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set textFile = fs.OpenTextFile(Server.MapPath("counter.txt"),1,true)
while not textFile.AtEndOfStream
count = textFile.readLine
Wend
textFile.close
count = cInt(count) + 1
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set textFile = fs.OpenTextFile(Server.MapPath("counter.txt"),2,false)
counter = textFile.writeLine(count)
textFile.close
Application("counter") = count
Session("default") = "true"
END IF
%>
"" THEN%>
[Thot ]
Xin chào ! Hi vọng bạn
tìm được những cuốn sách hay!
<%
If Session("fullname") = "" Then
%>
<%
END IF
%>
Xin
chào mừng bạn đã đến với trang web mua bn sch tại Việt Nam. Chóng ti mong muốn đem lại
cho các bạn những cuốn sách mới nhất, chất lượng nhất với một giá cả phù hợp với túi tiền của bạn.
Nếu có nhu cầu tìm sách mà chưa có tại website, bạn hãy liên hệ với chúng tôi.
Trợ giúp " ở menu
chính.
Mọi chi tiết xin liên hệ:
Email :
support@ibs.vn
Chóng ti kiểm tra mail 3 ln mét ngy
và sẽ cố gắng trả lời nhanh nhất cho bạn.
<%
sqlString = "SELECT Top 3 * FROM tblBooks WHERE BookBrief ''"
Set RS = Con.execute(sqlString)
WHILE NOT RS.EOF
%>
<IMG alt="" border=0 height=2
src="a/blank.gif"
width=1 align = "center">
<TD
background="a/osdn_navbar.gif"
bgColor=#dddddd height=20 width="427" align="center">
<IMG alt="" border=0 height=1
src="a/blank.gif"
width=1>
<IMG alt="" border=0 height=1
src="a/blank.gif"
width=250>
<IMG alt="" border=0 height=1
src="a/blank.gif"
width=250>
<IMG alt="" border=0 height=1
src="a/blank.gif"
width=250>
<TD
background="div_grad_blue(1).gif"
bgColor=#003399 width="427"><IMG alt="" border=0 height=1
src="a/blank.gif"
width=1>
&bid=> width = 78 height = 98 border = "0">
...
<font face="Verdana,Helvetica,Sans-serif" style = "font-size:8pt
&bid=>Chi tiết
<%
RS.MoveNext
WEND
RS.Close
%>
7.2.2 Sản phẩm
<%
Session("previouspage") = ""
Session("cid") = ""
Session("searchfor") = ""
Session("searchby") = ""
%>
<%Session.CodePage = 65001
IF Session("fullname") = "" THEN
username = Request("username")
password = Request("password")
sqlString = "SELECT customerid, username, password, fullname, city FROM tblCustomers "&_
"WHERE username = '" & username & "' AND password = '" & password & "'"
Set RSLog = Con.execute(sqlString)
IF NOT RSLog.EOF THEN
Session("fullname") = RSLog("Fullname")
Session("username") = RSLog("Username")
Session("city") = RSLog("City")
Session("id") = RSLog("CustomerID")
RSLog.Close
END IF
END IF
%>
"" THEN%>
[">Thoát]
Xin chào ! Hi vọng bạn
tìm được những cuốn sách hay!
<%
If Session("fullname") = "" Then
%>
<%
END IF
%>
<%
cid = Trim(Request("cid"))
pg = cInt(Request("pg"))
IF pg = 0 THEN pg = 1
sqlString = "SELECT * FROM tblBooks, tblBookCategories, tblPublishers, tblAuthors "&_
"WHERE tblBooks.CategoryID = '" & cid & "' AND tblBookCategories.CategoryID = '" & cid & "'"&_
"AND tblBooks.PublisherID = tblPublishers.PublisherID AND tblBooks.AuthorID = tblAuthors.AuthorID"
Set RSBook = Server.CreateObject("ADODB.Recordset")
RSBook.ActiveConnection = Con
RSBook.CursorType = adOpenStatic
RSBook.PageSize = 5
RSBook.Open sqlString
RSBook.AbsolutePage = pg
%>
<IMG alt="" border=0 height=2
src="a/blank.gif"
width=1 align = "center">
<TD
background="a/osdn_navbar.gif"
bgColor=#dddddd height=20 width="430" align="center">
Thể loại: >>
<IMG alt="" border=0 height=1
src="a/blank.gif"
width=1>
<IMG alt="" border=0 height=2
src="a/blank.gif"
width=250>
<IMG alt="" border=0 height=1
src="a/blank.gif"
width=250>
<IMG alt="" border=0 height=1
src="a/blank.gif"
width=250>
<TD
background="div_grad_blue(1).gif"
bgColor=#003399><IMG alt="" border=0 height=1
src="a/blank.gif"
width=1>
<%
WHILE NOT RSBook.EOF AND rowCount < RSBook.PageSize
rowCount = rowCount + 1
%>
&bid=">
" width = "62" height = "85" border = 0>
Tên sách:
&bid=">
Tác giả:
&bid=">
Xem chi tiết
Nhà XB:
>
">
">
">
Giá bìa:
đ
>
<%
RSBook.MoveNext
WEND
%>
1 THEN
%>
Trang:
<%
FOR i = 1 TO RSBook.PageCount
IF i pg THEN
%>
&pg=">
<%END IF
NEXT
RSBook.Close
END IF%>
7.2.3 Đăng nhập
function checkLogin() {
var un = document.form2.username.value;
var pw = document.form2.password.value;
var s = ""
if (un == "")
s = "Bạn chưa nhập tên truy nhập";
if (pw == "")
s += "\nBạn chưa nhập mật khẩu";
if (s != "") {
alert(s);
return false;
}
else
return true;
}
<%Session.CodePage = 65001
cid = Request("cid")
IF Session("fullname") = "" THEN
username = Request("username")
password = Request("password")
sqlString = "SELECT customerid, username, password, fullname, city FROM tblCustomers "&_
"WHERE username = '" & username & "' AND password = '" & password & "'"
Set RSLog = Con.execute(sqlString)
IF NOT RSLog.EOF THEN
Session("fullname") = RSLog("Fullname")
Session("username") = RSLog("Username")
Session("city") = RSLog("City")
Session("id") = RSLog("CustomerID")
RSLog.Close
END IF
END IF
%>
<%
Application.Lock
Application("counter") = Application("counter") + 1
Application.Unlock
%>
"" THEN%>
[Thoát]
Xin chào ! Hi vọng bạn
tìm được những cuốn sách hay!
<%
If Session("fullname") = "" Then
%>
<%
END IF
%>
<%
cid = Trim(Request("cid"))
previouspage = Request.QueryString("previouspage")
previouspage2 = Request("previouspage2")
IF Session("checkout") THEN
previouspage = "checkout.asp"
END IF
b = Session("vieworder")
IF b = "" THEN
b = false
END IF
IF b THEN
previouspage = "vieworder.asp"
END IF
IF Session("iscart") = "" AND previouspage = "" THEN
previouspage = "default.asp"
END IF
IF Session("iscart") "" THEN
previouspage = "sessioncart.asp"
Session("iscart") = ""
END IF
%>
Bạn hãy
Đ ăng
nhập hoặc ăng ký
name = "form2" onSubmit = "return checkLogin();">
Đ ăng nhập
Tên truy nhập:
Mật khẩu:
">
">
">
>
7.2.4 Đăng kí
function checkLogin() {
var un = document.form2.username.value;
var pw = document.form2.password.value;
var s = ""
if (un == "")
s = "Bạn chưa nhập tên truy nhập";
if (pw == "")
s += "\nBạn chưa nhập mật khẩu";
if (s != "") {
alert(s);
return false;
}
else
return true;
}
<%Session.CodePage = 65001
cid = Request("cid")
IF Session("fullname") = "" THEN
username = Request("username")
password = Request("password")
sqlString = "SELECT customerid, username, password, fullname, city FROM tblCustomers "&_
"WHERE username = '" & username & "' AND password = '" & password & "'"
Set RSLog = Con.execute(sqlString)
IF NOT RSLog.EOF THEN
Session("fullname") = RSLog("Fullname")
Session("username") = RSLog("Username")
Session("city") = RSLog("City")
Session("id") = RSLog("CustomerID")
RSLog.Close
END IF
END IF
%>
<%
Application.Lock
Application("counter") = Application("counter") + 1
Application.Unlock
%>
"" THEN%>
[Thoát]
Xin chào ! Hi vọng bạn
tìm được những cuốn sách hay!
<%
If Session("fullname") = "" Then
%>
<%
END IF
%>
<%
cid = Trim(Request("cid"))
previouspage = Request.QueryString("previouspage")
previouspage2 = Request("previouspage2")
IF Session("checkout") THEN
previouspage = "checkout.asp"
END IF
b = Session("vieworder")
IF b = "" THEN
b = false
END IF
IF b THEN
previouspage = "vieworder.asp"
END IF
IF Session("iscart") = "" AND previouspage = "" THEN
previouspage = "default.asp"
END IF
IF Session("iscart") "" THEN
previouspage = "sessioncart.asp"
Session("iscart") = ""
END IF
%>
Bạn hãy
Đ ăng
nhập hoặc ăng ký
name = "form2" onSubmit = "return checkLogin();">
Đ ăng nhập
Tên truy nhập:
Mật khẩu:
">
">
">
>
7.2.4 Admin
<%
IF Session("admin") = "" THEN
username = Request("username")
password = Request("password")
IF username = "quangtrung" AND password = "trung" THEN
Session("admin") = username
END IF
END IF
IF Session("admin") "" THEN
%>
<TABLE border= 0 cellPadding=0 cellSpacing=0 width="775" bgcolor = "white"
style="border-style:solid; border-width:0; border-collapse: collapse; padding-left:0; padding-right:0; padding-top:0; padding-bottom:0" bordercolor="#BBBBBB" height="515">
<TABLE border= 0 cellPadding=0 cellSpacing=0 width="620" bgcolor = "white"
style="border-style:solid; border-width:0; border-collapse: collapse; padding-left:0; padding-right:0; padding-top:0; padding-bottom:0" bordercolor="#BBBBBB" height="515">
<%ELSE
Response.Redirect "adminlogin.asp"
%>
7.2.5 xem n t hng
<%Session.CodePage = 65001
cid = Request("cid")
IF Session("fullname") = "" THEN
username = Request("username")
password = Request("password")
sqlString = "SELECT customerid, username, password, fullname, city FROM tblCustomers "&_
"WHERE username = '" & username & "' AND password = '" & password & "'"
Set RSLog = Con.execute(sqlString)
IF NOT RSLog.EOF THEN
Session("fullname") = RSLog("Fullname")
Session("username") = RSLog("Username")
Session("city") = RSLog("City")
Session("id") = RSLog("CustomerID")
RSLog.Close
END IF
END IF
%>
"" THEN%>
[Thoát]
ơn đặt hàng của !
Quay về trang chủ
<%
If Session("fullname") = "" Then
%>
<%
END IF
%>
<%Session.CodePage = 65001
Session("vieworder") = true
previouspage = Request("previouspage")
IF Session("fullname") = "" THEN
username = Request("username")
password = Request("password")
sqlString = "SELECT customerid, username, password, fullname, city FROM tblCustomers "&_
"WHERE username = '" & username & "' AND password = '" & password & "'"
Set RSLog = Con.execute(sqlString)
IF NOT RSLog.EOF THEN
Session("fullname") = RSLog("Fullname")
Session("id") = RSLog("CustomerID")
Session("username") = RSLog("Username")
Session("city") = RSLog("City")
END IF
RSLog.Close
END IF
%>
<%IF Session("fullname") = "" THEN
Response.Redirect "login.asp"
Response.END
END IF
%>
<%
sqlString = "SELECT tblOrders.OrderID, tblOrders.CustomerID, tblOrders.OrderDate, tblOrders.StatusID, tblOrderDetails.OrderID, tblOrderDetails.ISBNNumber, tblOrderDetails.Quantity, "&_
"tblOrderDetails.Total, tblOrderDetails.Discount, tblBooks.ISBNNumber, tblBooks.BookName, tblStatus.StatusID, tblStatus.StatusName FROM "&_
"tblOrders, tblOrderDetails, tblBooks, tblStatus WHERE tblOrders.CustomerID = " & Session("id") & " AND tblOrders.OrderID = tblOrderDetails.OrderID AND tblOrders.StatusID = tblStatus.StatusID "&_
"AND tblOrderDetails.ISBNNumber = tblBooks.ISBNNumber"
Set RSOrder = Server.CreateObject("ADODB.Recordset")
RSOrder.ActiveConnection = Con
RSOrder.Open sqlString
%>
Bạn chưa có đơn đặt hàng nào
Ngày
Sách
Slượng
Thành tiền
Giảm giá
Trạng thái
<%WHILE NOT RSOrder.EOF
%>
//
đ
đ
<%
RSOrder.MoveNext
WEND
RSOrder.Close
%>
<%
END IF
%>
Các file đính kèm theo tài liệu này:
- DAN043.doc