25/05/2018, 08:53

Bài Thực Hành

MỤC TIÊU: Kết thúc bài thực hành sinh viên có thể Xây dựng trang Web theo cấu trúc Frame Hiển thị trang web trong một frame chỉ định Tạo các hiệu ...

MỤC TIÊU: Kết thúc bài thực hành sinh viên có thể

  • Xây dựng trang Web theo cấu trúc Frame
  • Hiển thị trang web trong một frame chỉ định
  • Tạo các hiệu ứng cho liên kết

NỘI DUNG:

Yêu cầu: Tạo một trang Web có 3 frame với tên lần lượt là : frameTren, frameTrai, framePhai. frameTren sẽ nạp trang Banner.htm, frameTrai sẽ nạp trang Menu.htm, framePhai dùng để hiển thị trang Web mà liên kết được đặt trong frameTrai, ban đầu frame này sẽ nạp trang GioiThieu.htm.

Tạo trang Banner.htm

1. Mở chương trình soạn thảo, ví dụ FrontPage

2. Gõ nội dung như sau

<HTML>

<HEAD>

<TITLE>Trang Banner.htm</TITLE>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

</HEAD>

<BODY>

<H1 STYLE="awidth:100%; filter:glow(); text-align:center;">Siêu thị máy tính </H1>

</BODY>

</HTML>

Tạo trang GioiThieu.htm

<HTML>

<HEAD>

<TITLE>Trang Giới thiệu</TITLE>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

</HEAD>

<BODY>

<H1 Style="text-align:center;">Giới thiệu về công ty tại đây</H1>

<H1 Style=”text-align:center”>Tham khảo các trang Web trên mạng </H1>

</BODY>

</HTML>

Trang Menu.htm (Minh hoạ tạo 2 liên kết đến trang GioiThieu.htm và SanPham.asp)

<HTML>

<HEAD>

<TITLE>Trang Liên kết</TITLE>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

</HEAD>

<BODY>

<A Href = “GioiThieu.htm” Target = “Main”>Giới thiệu </A>

<A Href =”SanPham.asp” Target = “Main”>Sản phẩm </A>

</BODY>

</HTML>

Trang Menu.htm (Version 2 - tạo hiệu ứng)

<HTML>

<HEAD>

<TITLE>Trang liên kết - tạo hiệu ứng</TITLE>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

</HEAD>

<Style Type = “Text/CSS”>

A { Text-decoration: None} // Bỏ gạch chân dưới mỗi liên kết

.MenuThuong {color : Blue; Background-color: White} // Định nghĩa lớp

.MenuKichHoat {color : White; Background-color : Red} // Định nghĩa lớp

</Style>

<BODY>

<A onMouseOver="this.className='MenuKichHoat'"

onMouseOut ="this.className='MenuThuong' "

href = “GioiThieu.htm” Target = “Main”>Giới thiệu

</A>

<BR>

<A onMouseOver="this.className='MenuKichHoat' "

onMouseOut ="this.className='MenuThuong' "

href = “SanPham.asp” Target = “Main”>Sản phẩm

</A>

</BODY>

</HTML>

Trang Index.htm (Chú ý : Thêm các thẻ <BODY>
<Frameset rows = "20%,*"> <Frame name = Banner Src = "Banner.htm"> <FrameSet Cols= "20%,*"> <Frame name = Menu Src = "Menu.htm"> <Frame name = Main Src = "GioiThieu.htm"> </FrameSet></FrameSet>

MỤC TIÊU: Sau bài thực hành này Sinh viên có thể

  • Viết lệnh đọc và hiển thị dữ liệu trong một bảng trên trang Web
  • Bổ sung dữ liệu vào trong bảng CSDL
  • Cập nhật dữ liệu vào trong bảng CSDL
  • Truyền dữ liệu giữa các trang bằng URL (Dạng Request.QueryString(…))

NỘI DUNG THỰC HÀNH

Tạo CSDL tên là Book.mdb, CSDL này có 1 bảng là tblSach gồm các trường như sau:

1. Đọc dữ liệu trong bảng CSDL và hiển thị trên trang Web

Tạo một trang HienThiSach.asp có nội dung như sau:

<%@LANGUAGE="VBSCRIPT" %>

<HTML>

<title>Đọc dữ liệu từ file CSDL</title>

<body style="font-family:arial">

<%

Dim Cn, Rs

Dim strCn

'///// Tạo kết nối đến CSDL /////////////////////////////////////////////////////////

Set Cn = Server.CreateObject("ADODB.Connection") '/// Tạo đối tượng Connection

Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &Server.Mappath("Book.mdb")

Cn.CursorLocation = 3

Cn.Open '/// Thực sự mở kết nối đến CSDL Book.mdb

Set Rs = Cn.Execute("Select * from tblSach") '/// Mở bảng và lưu trong biến RS

'//// Đọc dữ liệu và hiển thị ra Bảng////////////////////////////////////////////

Response.Write("<Table border = 1 style='awidth:100%'>")

Response.Write("<TR><TH>Mô tả <TH>Tên sách <TH> Tên Tác giả <TD>”)

Response.Write(“Tên NXB <TD> Năm XB <TD>Số trang <TD> Giá ")

Do while not Rs.EOF

Response.Write("<TR>")

Response.Write("<TD><img awidth=100px src='" & Rs("DuongDan") &"'>")

Response.Write("<TD>" &Rs("TenSach"))

Response.Write("<TD>" &Rs("TenTacgia"))

Response.Write("<TD>" &Rs("TenNXB"))

Response.Write("<TD>" &Rs("NamXB"))

Response.Write("<TD>" &Rs("SoTrang"))

Response.Write("<TD>" &Rs("Gia"))

Rs.MoveNext

Loop

Response.Write("</Table>") '/// Đóng thẻ Table

</BODY>

</HTML>

2. Cập nhật dữ liệu (Cập nhật thông tin về một cuốn sách nào đó)

Ý tưởng: Để cập nhật dữ liệu cho thuận tiện, chúng ta sẽ xây dựng 3 trang: Một trang gọi là “DanhMucSach.asp” để hiển thị các sách hiện có. Mỗi một cuốn sách trong trang này sẽ có một liên kết tên là “Cập nhật”, liên kết này chỉ đến trang “SoanThao.asp”, Khi người dùng click vào liên kết thì trong liên kết có chứa “MaSach” sẽ được gửi đến trang “SoanThao.asp”. Trang “SoanTHao.asp” sẽ hiển thị các thông tin trong các textbox về cuốn sách có mã bằng mã do trang “DanhMucSach.asp” gửi tới và cho người dùng thay đổi tại đây. Thông tin soạn xong sẽ được gửi đến trang “Capnhat.asp” để thực hiện việc cập nhật. Sơ đồ mô tả như hình dưới đây:

TênSTGiả~~PascalQTN~~~~~~~~~~DanhMucSach.aspMã sách: Tên sách:Tên tác giả:~~~~~~~~~~~~~~~~SoanThao.aspDim TensachTenSach=Request.QueryString(“TenSach”) ……………..tblSachCapNhat.asp

File: DanhMucSach.asp
<%@LANGUAGE="VBSCRIPT" %><title>Danh mục sách trong file CSDL</title><body style="font-family:arial">  ‘/// Nội dung file Ketnoi.inc xin xem ở phần dưới<h1 align="center">Danh mục sách trong kho </h1><%Set Rs = Cn.Execute("Select * from tblSach") '/// Mở bảng và lưu trong biến RS'//// Đọc dữ liệu và hiển thị ra Bảng////////////////////////////////////////////Response.Write("<Table border = 1 style='awidth:100%'>") Response.Write("<TR> <TH>Mô tả <TH>Tên sách <TH> Tên Tác giả <TD>Tên NXB <TD> Sửa đổi") do while not Rs.EOF Response.Write("<TR>") Response.Write("<TD><img awidth=100px src='" & Rs("DuongDan") &"'>") Response.Write("<TD>" &Rs("TenSach")) Response.Write("<TD>" &Rs("TenTacgia")) Response.Write("<TD>" &Rs("TenNXB")) Response.Write("<TD><A href = 'SoanThao.asp?MaSach=" &Rs("MaSach") &"'>Sửa") Rs.MoveNext LoopResponse.Write("</Table>") '/// Đóng thẻ Table%></BODY></HTML>
File: “KetNoi.inc”
<%Dim Cn, Rs Dim strCn Set Cn = Server.CreateObject("ADODB.Connection") ' /// Tạo đối tượng ConnectionCn.ConnectionString= "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.Mappath("Book.mdb") Cn.CursorLocation = 3Cn.Open ' /// Thực sự mở kết nối đến CSDL Book.mdb%>
File: SoanThao.asp
<%@LANGUAGE="VBSCRIPT" %><HTML><head><title>Hiển thị dữ liệu cho người dùng soạn thảo</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="font-family:arial">  ‘// File KetNoi.inc xin xem ở trang trên<h1 align="center">Thay đổi các trường và nhấn nút "Cập nhật"</h1><%Dim MaSach MaSach = Request.QueryString("MaSach") ‘// Lấy mã sách do trang DanhMucSach gửi tới'Chọn sách có Mã sách = Mã sách mà người dùng muốn sửa đổiSet Rs = Cn.Execute("Select * from tblSach where Masach = '" &Masach & "'") Response.Write("<FORM Action = 'CapNhat.asp' method = Post>")Response.Write("Mã sách : <Input type=text value ='" &Rs("MaSach") &"' name = MaSach> <BR>")Response.Write("Tên sách : <Input type=text value='" &Rs("TenSach") &"' name = TenSach> <BR>")Response.Write("Tên tác giả : <Input type=text value='" &Rs("TenTacGia") &"' name = TenTacGia> <BR>")Response.Write("Tên nhà xuất bản: <Input type=text value='" &Rs("TenNXB") &"' name= TenNXB> <BR>")Response.Write("<Input type = Submit value = 'Cập nhật'>") Response.Write("</FORM>")%></BODY></HTML>
File: CapNhat.asp
<%@LANGUAGE="VBSCRIPT" %><HTML><head><title>Cập nhật dữ liệu từ file CSDL</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><BODY style="font-family:arial">  ‘// File KetNoi.inc xin xem ở trang trên<%Dim MaSach, TenSach, TenTacGia, TenNXB MaSach = Request.Form("MaSach") '// Lấy mã sách mà người dùng muốn TenSach = Request.Form("TenSach") TenTacGia = Request.Form("TenTacGia") TenNXB = Request.Form("TenNXB") Cn.execute "Update tblSach Set TenSach = '" &TenSach & "', TenTacGia = '" & TenTacGia & "',TenNXB = '" &TenNXB & "' Where MaSach = '" &MaSach & "'" Response.Write("Thông tin đã được cập nhật ! <a href=DanhMucSach.asp>Danh mục sách</A>")%></BODY></HTML>

MỤC TIÊU: Sau bài thực hành này Sinh viên có thể

  • Khai báo và sử dụng biến Session và biến Application
  • Sử dụng biến toàn cục Application để đếm số lượng người truy cập
  • Sử dụng biến Session để lưu tình trạng đăng nhập của người dùng
  • Tạo trang đăng nhập cho người dùng

NỘI DUNG THỰC HÀNH

I. Tạo biến toàn cục

1. Biến Application

Biến Application là biến có phạm vi ảnh hưởng đến tất cả mọi người dùng. Nó tồn tại từ khi IIS Server chạy. Biến này thường được dùng để lưu các thông tin mang ý nghĩa toàn cục, ví dụ như số lượng người truy cập v.v…

Bài 01: Tạo biến toàn cục có tên là SoNguoiTruyCap, và hiển thị giá trị của nó trong trang có tên là : Test.asp

Bước 1: Tạo trang Global.asa có nội dung như sau (Lưu ý: Tên phải là Global.asa):

<Script language = VBScript Runat = Server>Sub Application_OnStart Application(“SoNguoiTruyCap”) = 0 ‘// Tạo biến toàn cục tên là SoNguoiTruyCapEnd Sub</SCRIPT>Trang Global.asa

Bước 2: Tạo trang Test.asp để hiển thịthay đổi giá trị của biến toàn cục, có nội dung như sau :

<%@ Language = VBScript %><HTML><BODY><% Response. Write("Giá trị của biến toàn cục là : " &Application("SoNguoiTruyCap")) Applicathon("SoNguoiTruyCap") = Application("SoNguoiTruyCap") + 1Response. Write("<BR> Giá trị của biến bây giờ là : " &Application("SoNguoiTruyCap"))%></BODY></HTML>Trang Test.asp

*** Nhận xét***:

- Vì SoNguoiTruyCap là một biến toàn cục, do vậy nó vẫn tồn tại ngay cả khi bạn đã đóng tất cả các cửa sổ trình duyệt. Sự thay đổi này có tác dụng đối với mọi người dùng truy nhập vào Website.

- Để tạo một biến toàn cục, chúng ta viết: Application("<Tên biến>") = <Giá trị> như ở trên.

- Thủ tục sự kiện Application_OnStart và Session_OnStart được gọi mỗi khi một trang ASP được mở, trong các thủ tục này chúng ta có thể viết các câu lệnh ASP, kể cả việc truy cập vào CSDL.

Bài 02: Đếm số lượt người truy cập vào Website

Yêu cầu: Xây dựng một trang Web có tên là Index.asp. Trong trang này sẽ hiển thị số lượng người đã truy cập.

<%@ Language = VBScript %><HTML><BODY><H1 Align = Center> Chào mừng bạn đã đến với Website của lớp chúng tôi ! </H1><BR><BR><HR><% Response. Write("<H2> Bạn là vị khách thứ " &Application("SoNguoiTruyCap"))%></BODY></HTML>Trang Index.asp

Lưu ý: Vì mỗi một khách vào thăm trang Web thì thủ tục sự kiện Session_OnStart được gọi một lần, do vậy để đếm số lượng người truy cập thì trong thủ tục này ta chỉ cần tăng biến toàn cục SoNguoiTruyCap lên 1 đơn vị là đủ. Tức là trong tệp Global.asa bạn cần thêm các câu lệnh sau:

<Script language = VBScript Runat = Server>Sub Application_OnStart Application(“SoNguoiTruyCap”) = 0 ‘/// Tạo biến toàn cục tên là SoNguoiTruyCapEnd SubSub Sesstion_OnStart '/// Thủ tục này được gọi khi có 1 người mới viếng thăm Application(“SoNguoiTruyCap”) = Application(“SoNguoiTruyCap”) + 1End Sub</SCRIPT>Trang Global.asa

2. Biến Session

Biến Session là biến toàn cục dùng để lưu thông tin hoặc trạng thái của một người dùng cụ thể nào đó trong một phiên làm việc, Ví dụ: Dùng để lưu trạng thái đăng nhập (Thành công hay không thành công) của một người dùng.

Biến Session chỉ tồn tại trong thời gian Session được tạo ra, nó không ảnh hưởng đến các Session khác. Để tạo biến Session, cần đặt câu lệnh trong file Global.asa và trong thủ tục Sub Session_OnStart lệnh sau: Session(“<Tên biến>”) = <Giá trị>

Sau đây chúng ta sẽ sử dụng biến Session để lưu trạng thái đăng nhập của người dùng. Và tạo 1 trang đăng nhập.

Bài 02: Xây dựng 2 trang ASP có tên lần lượt là : Xoa.asp và trang Login.asp.

Trang xoá có nội dung như sau (Thực tế giống như trang Xoa.asp trong Project01): “Loại bỏ sản phẩm “. Và trang này chỉ hiển thị nếu người dùng đã đăng nhập với Tên là “tk33” và mật khẩu là “123”. Nếu người dùng chưa đăng nhập thì mở trang Login.asp để đăng nhập.

 Khai báo biến Session(“DaDangNhap”) trong file Global.asa như sau:

<Script language = VBScript Runat = Server>Sub Sesstion_OnStart '/// Thủ tục này được gọi khi có 1 người mới viếng thăm Session(“DaDangNhap”) = “chua” ‘/// Biến Đã đăng nhập khởi tạo = “chưa”End Sub</SCRIPT>Trang Global.asaFile Global.asa

 Xây dựng trang Login.asp

<HTML>

<TITLE>Đăng nhập hệ thống </TITLE>

<BODY>

<FORM ACTION="Login.asp" METHOD="POST">

<TABLE BGCOLOR="#FF9966" ALIGN="CENTER">

<TR STYLE="color:white" BGCOLOR="#660000">

<TD COLSPAN="2" ALIGN="CENTER"> Thông tin đăng nhập</TR>

<TR><TD>Tên đăng nhập : <TD><Input TYPE="TEXT" NAME="UserName">

<TR><TD>Mật khẩu: <TD><Input TYPE="PASSWORD" name = Password>

<TR><TD>&nbsp; <TD><Input TYPE="SUBMIT" VALUE="Đăng nhập">

</TABLE>

</FORM>

<%

IFRequest.Form(“UserName”) = “tk33” And Request.Form(“Password”) = “123” Then

Session(“DaDangNhap”) = “roi” ‘// Ghi nhớ lại là đã đăng nhập thành công rồi.

Response.write(“Bạn đã đăng nhập thành công ! <a href = ‘index.htm’>Về trang chủ </a>”)

Else

Response.write(“Tên và mật khẩu sai ! Xin hãy nhập lại.”)

End IF

%>

</BODY>

</HTML>

≅ Thực tế, việc kiểm tra người dùng ở trên, chúng ta sẽ so sánh với chi tiết người dùng trong CSDL.

 Trang Xoa.asp

Xoa.sp<HTML><BODY><%IF Session(“DaDangNhap”) = “roi” Then‘// Thực hiện các câu lệnh ở đâyResponse.write(“Bản ghi đã bị xoá ! “)Response.write(“Bạn muốn xoá tiếp hay không ?”)ElseResponse.write(“Bạn chưa đăng nhập. <a href =’Login.asp’>Login</a>”)End IF%></BODY></HTML>Trang Global.asa

Nâng cấp trang Login.asp
<HTML><TITLE>Đăng nhập hệ thống </TITLE><BODY><FORM ACTION="Login.asp" METHOD="POST"> <TABLE BGCOLOR="#FF9966" ALIGN="CENTER"> <TR STYLE="color:white" BGCOLOR="#660000"> <TD COLSPAN="2" ALIGN="CENTER"> Thông tin đăng nhập</TR><TR><TD>Tên đăng nhập : <TD><Input TYPE="TEXT" NAME="UserName"> <TR><TD>Mật khẩu: <TD><Input TYPE="PASSWORD" name = Password> <TR><TD>&nbsp; <TD><Input TYPE="SUBMIT" VALUE="Đăng nhập"> </TABLE></FORM> <% Dim Ten, MatKhau, strSQL Ten = Request.Form(“UserName”)MatKhau = Request.Form(“Password”)IF Ten <> “” Then' /// Chỉ kiểm tra nếu người dùng đã nhập Username & Password strSQL =“Select* from tblUserDetail Where Ten=’” &Ten & “’ AND MatKhau =’“ &MatKhau &”’” Set Rs = Cn.Execute(strSQL) IF Rs.RecordCount > 0 ThenSession(“DaDangNhap”) = “roi”Response.write(“Bạn đã đăng nhập thành công ! <a href = ‘index.htm’>Về trang chủ </a>”) ElseResponse.write(“Tên và mật khẩu sai ! Xin hãy nhập lại.”) End IF End IF%></BODY></HTML>

trang Login.asp

Mục tiêu: Kết thúc bài thực hành, Sinh viên có thể:

  • Tích hợp cơ chế bảo mật (Login) vào ứng dụng Web
  • Xử lý được các mục dữ liệu truyền đi và nhận về với số lượng lớn
  • Mô phỏng được hệ thống bán hàng trực tuyến.

Nội dung:

Xây dựng 3 trang có tên lần lượt là: DatHang.asp, Thongke.aspThanhToan.asp. Được mô tả theo chức năng như sau:

Trang Dathang.asp có chức năng hiển thị các mặt hàng và cho phép người dùng đặt số lượng tương ứng. Sau khi người dùng click vào nút "Đặt hàng" thì toàn bộ Tên sách, số lượng cũng như giá của mỗi loại sách sẽ được gửi sang trang ThongKe.asp. Trang Thongke.asp sẽ tiếp nhận các thông tin này đồng thời hiển thị thêm cột thành tiền và tổng số tiền mà khách hàng đã đặt mua để khách hàng xem lại một lần nữa trước khi thực hiện thanh toán. Trang này cũng có một nút "Chấp nhận" và Sau khi người click vào nút này thì tổng số tiền mua sẽ được gửi đến trang ThanhToan.asp để thực hiện khấu trừ tiền của khách hàng và cộng thêm vào tài khoản của người bán (Giả định là mã số của người bán là 'seller').

Cơ sở dữ liệu sách có 2 bảng như sau:

tblSach tblUserDetail
Tên trường Mô tả Tên trường Mô tả
MaSach Mã sách MaNguoiDung Mã người dùng
TenSach Tên sách MatKhau Mật khẩu
TenTacGia Tên tác giả SoDuTaiKhoan Số dư tài khoản
TenNXB Tên NXB
SoTrang Số trang
Gia Giá

Trang KetNoi.Inc có nội dung như sau:

<%

Dim Cn, Rs

Dim strCn

'///// Tạo kết nối sau đó thực hiện kết nối đến CSDL ///////////////////////

Set Cn = Server.CreateObject("ADODB.Connection") ' /// Tạo đối tượng Connection

Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.Mappath("Book.mdb")

Cn.CursorLocation = 3

Cn.Open ' /// Thực sự mở kết nối đến CSDL Book.mdb

%>

Trang DatHang.asp

<HTML>

<head>

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

<title>Đặt hàng trực tuyến</title>

</head>

<BODY>

 

<h1 align =center> ĐẶT MUA SÁCH TRỰC TUYẾN </h1>

<HR>

<Form action = Thongke.asp method = post>

<TABLE Border = 1> <TR> <TH>Tên sách <TH>Số lượng <TH> Đơn giá

<%

Dim i

i=1

Set Rs = Cn.Execute("Select * from tblSach")

Do while not Rs.EOF

Response.write("<TR>")

Response.write("<TD><Input NAME=TENSACH" & i &" Value='" &Rs("TenSach") & "'>")

Response.write("<TD><Input NAME=SL" & i & " Value = 0>")

Response.write("<TD><Input NAME=Gia" & i & " Value = " &RS("Gia") & ">")

i = i + 1

Rs.MoveNext

Loop

%>

</TABLE>

<HR>

<Input type = hidden Name = SoLuongSach value = <%=(Rs.RecordCount)%> >

<Input type = Submit Value= " Đặt hàng ">

</Form>

</BODY>

</HTML>

<Script language = VBScript Runat = Server>Sub Sesstion_OnStart '/// Thủ tục này được gọi khi có 1 người mới thăm Session(“DaDangNhap”) = “chua” ‘/// Biến DaDangNhap khởi tạo=“chưa”Session(“UserName”) = “” ‘/// Biến tên của người dùngEnd Sub</SCRIPT>Trang Global.asaGlobal.asa

Trang ThongKe.asp

<HTML>

<head>

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

<title>Đặt hàng trực tuyến</title>

</head>

<BODY>

<h1 align =center> CÁC CUỐN SÁCH BẠN ĐÃ ĐẶT MUA </h1>

<H2 ALIGN=CENTER>Nếu bạn đồng ý mua, hãy click vào nút "Đồng ý mua" </H2>

<HR>

<Form action = Thanhtoan.asp method = post>

<TABLE Border = 1 Width=100%>

<TR><TD>Tên sách <TD>Số lượng <TD> Đơn giá <TD> Thành tiền

<%

Dim i, TenSach, TongSoCuonSach, TongTien, Gia, SoLuong, ThanhTien

TongTien = 0

TongSoCuonSach = Request.form("SoLuongSach")

For i = 1 to TongSoCuonSach

TenSach = Request.Form("TenSach" &i)

SoLuong = Request.form("SL" &i)

Gia = Request.form("Gia" &i)

IF SoLuong > 0 Then' /// Chỉ hiển thị và tính toán khi số lượng> 0

ThanhTien = SoLuong * Gia

TongTien = TongTien + ThanhTien

Response.Write("<TR>")

Response.Write("<TD>" & TenSach)

Response.Write("<TD>" & SoLuong)

Response.Write("<TD>" & Gia)

Response.Write("<TD>" & ThanhTien)

End IF

Next

Response.Write("<TR><TD Colspan = 4>Tổng số tiền là : " & TongTien)

%>

<HR>

<Input type = hidden Name = TongTienMua value = <%=(TongTien)%> >

<Input type = Submit Value= " Đồng ý mua ">

</TABLE>

</Form>

</BODY>

</HTML>

Trang này có nhiệm vụ thông kê lại toàn bộ những cuốn sách và số tiền tương ứng. Sau đó chuyển tổng số tiền sang trang ThanhToan.asp.

Trang ThanhToan.asp<HTML>

<head>

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

<title>Thanh toán trực tuyến</title>

</head>

<BODY>

 

<h1 align =center> KẾT QUẢ THANH TOÁN </h1>

<HR>

<%IF Session("DaDangNhap") = "roi" Then

Dim TongTienMua, SoDuTaiKhoan, MaKhachHang, strSQL

'/// Lấy mã khách hàng từ biến session khi Login

MaKhachHang = Session("UserName")

Set Rs = Cn.Execute("Select * from tblUserDetail Where MaNguoiDung = '" & MaKhachHang & "'")

'/// Lấy số tiền còn dư trong tài khoản của khách hàng

SoDuTaiKhoan = Rs("SoDuTaiKhoan")

'/// Lấy tổng số tiền mua sách do trang thongke.asp gửi sang

TongTienMua = Request.Form("TongTienMua")

IFint(SoDuTaiKhoan) >= int(TongTienMua) Then '/// Thực hiện Thanh toán

'/// Cộng tiền vào số dư tài khoản cho người bán

strSQL = "UPDATE tblUserDetail Set SoDuTaiKhoan = SoDuTaiKhoan + " &TongTienMua

strSQL = strSQL & " WHERE MaNguoiDung = 'Seller'"

Cn.Execute strSQL

'/// Trừ tiền vào số dư tài khoản của người mua hàng

strSQL = "UPDATE tblUserDetail Set SoDuTaiKhoan = SoDuTaiKhoan - " &TongTienMua

strSQL = strSQL & " WHERE MaNguoiDung = '" & MaKhachHang & "'"

Cn.Execute strSQL

'// Thông báo thanh toán thành công

Response.Write("Cảm ơn bạn đã mua hàng." )

Else '/// Không đủ tiền thanh toán

Response.Write("Rất tiếc, Bạn không đủ thanh toán <BR>")

Response.write("Bạn hiện có: " &SoDuTaiKhoan & "<BR>")

Response.write("Số tiền bạn phải thanh toán là : " &TongTienMua)

End IF

Else

Response.Write("Bạn chưa đăng nhập ! <a href=DangNhap.asp>Đăng nhập </a>")

End IF

%>

</BODY>

</HTML>

*** Hàm int (s) để chuyển một xâu thành số. Ví dụ: int (“100”) 100

++ Seller là tài khoảncủa người bán hàng.

(CHÚ Ý: CÁC BÀI TẬP BỔ SUNG SẼ ĐƯỢC CẬP NHẬT VÀ UPLOAD THƯỜNG XUYÊN T ẠI: WWW.UTEHY.VN/FORUM )

0