24/05/2018, 22:32

Đối tượng Session - Biến Sesstion

Đối tượng Session : Dùng để quản lý các thông tin liên quan đến một phiên làm việc. Một phiên (Session) làm việc là gì ?: Mỗi khi mở trình duyệt (lần đầu tiên) vào website ứng dụng, ta đã tạo ra một phiên làm việc. Phiên làm việc kết thúc khi ta ra ...

Đối tượng Session : Dùng để quản lý các thông tin liên quan đến một phiên làm việc.

Một phiên (Session) làm việc là gì ?: Mỗi khi mở trình duyệt (lần đầu tiên) vào website ứng dụng, ta đã tạo ra một phiên làm việc. Phiên làm việc kết thúc khi ta ra khỏi website ứng dụng hoặc khi tất cả các cửa sổ trình duyệt bị đóng.

Khi vào một website, người dùng có thể duyệt rất nhiều trang web của website đó. Nếu muốn lưu trữ thông tin về khách thăm này trong cả phiên làm việc thì có thể lưu vào các biến, gọi là biến Session.

Là đối tượng dùng để quản lý (tạo, đọc, ghi) các biến sesstion và một số thông số khác.

+ Cú pháp để tạo biếnSession như sau:

Session(“Tên_Biến”) = <Giá trị>

Lưu ý: Tên biến phải đặt trong cặp dấu nháy kép. <Giá trị> có thể là xâu ký tự hoặc số.

Ví dụ : Tạo một biến tên là MaNguoiDung và gán giá trị là T08A

Session(“MaNguoiDung”) = “T08A”

+ Cú pháp để đọc giá trị của một biến sesstion như sau:

Session(“Tên_Biến”)

+ Cú pháp để ghi (thay đổi) giá trị của biến session:

Session(“Tên_Biến”) = <Giá trị>

Ví dụ:

Response.write(“Mã người dùng là : “ &Session(“MaNguoiDung”))

Riêng với đối tượng Session, nó còn có các sự kiện. Các sự kiện này tự động được gọi mỗi khi một phiên làm việc được tạo ra. Các sự kiện này có tên là On_Start và On_End. Các sự kiện này được đặt trong file Global.asa.

File Global.asa
<script LANGUAGE = "VBScript" RUNAT = Server>'/// Thủ tục này được gọi khi bắt đầu một phiênSUB Session_OnStart '........ Session("MaNguoiDung") = "Khách_Lạ" '.........END SUB'/// Thủ tục này được gọi khi kết thúc một phiênSUB Session_OnEnd '........END SUB</SCRIPT>

Ví dụ đọc giá trị biến Session:

File Session_Demo.asp
<HTML><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Đọc giá trị của biến Session có tên là MaNguoiDung</title></head><BODY><%Response.write("<BR>Bạn là : " &Session("MaNguoiDung"))%></BODY></HTML>

Ví dụ: Chỉ hiển thị các trang chủ (Home.asp) nếu người dùng có tên (UserName) là T08A và mật khẩu là 123456. Nếu không thì hiển thị trang Login.asp để người dùng đăng nhập.

Trang Global.asa
<script LANGUAGE = "VBScript" RUNAT = Server>'/// Thu tuc nay duoc goi khi bat dau mot phienSUB Session_OnStart '........ Session("MaNguoiDung") = "" Session("MatKhau") = "" Session("TrangThaiDangNhap") = "chưa" '.........END SUB'/// Thu tuc nay duoc goi khi ket thuc phien lam viecSUB Session_OnEnd '........END SUB</SCRIPT>
Trang Login.asp
<HTML><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Dang nhap</title></head><BODY><% IFRequest.Form("MaNguoiDung")= "T08A" and Request.Form("MatKhau")="123456" THEN Session("MaNguoiDung") = Request.Form("MaNguoiDung") Session("MatKhau") = Request.Form("MatKhau") Session("TrangThaiDangNhap") = "rồi" Response.write("Bạn đã đăng nhập thành công ! Bạn có thể vào ") Response.write("<a href = 'Home.asp'>Trang chủ </a>") ELSE ‘/// Tạo form đăng nhập Session("TrangThaiDangNhap") = "chưa" Response.write("<form action='Login.asp' method = 'Post'>") Response.write("Tên đăng nhập: <Input type = text name = MaNguoiDung> <BR>") Response.write("Mật khẩu : <Input type = password name = MatKhau> <BR>") Response.write("<Input type = Submit value = 'Đăng nhập'>") Response.write("</form>") ENDIF%></BODY></HTML>
Trang Home.asp
<HTML><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Trang chủ</title></head><BODY><% IF Session("TrangThaiDangNhap") = "rồi" THENResponse.write("<h2>Đây là trang chủ của lớp T08A !</h2>") Response.write("<h1>Chào mừng bạn đã ghé thăm website của chúng tôi !") ELSEResponse.write("Bạn chưa đăng nhập ! <a href = 'Login.asp'> Đăng nhập. </a>") ENDIF%></BODY></HTML>

*Lưu ý: Có thể tạo biến Session ở bất kỳ đâu chứ không nhất thiết ở trong file Global.asa

??? Dùng biến Session khi nào ?

0