บทช่วยสอน ASP

ASP HOME

กวดวิชา WP

แนะนำหน้าเว็บ มีดโกนหน้าเว็บ เค้าโครงหน้าเว็บ โฟลเดอร์หน้าเว็บ หน้าเว็บทั่วโลก แบบฟอร์มหน้าเว็บ วัตถุหน้าเว็บ ไฟล์หน้าเว็บ ฐานข้อมูลหน้าเว็บ ผู้ช่วยหน้าเว็บ หน้าเว็บ WebGrid แผนภูมิหน้าเว็บ อีเมลหน้าเว็บ ความปลอดภัยของหน้าเว็บ เผยแพร่หน้าเว็บ ตัวอย่างหน้าเว็บ ชั้นเรียนของหน้าเว็บ

มีดโกน ASP.NET

แนะนำมีดโกน มีดโกนไวยากรณ์ มีดโกน C# ตัวแปร มีดโกน C# ลูป มีดโกน C# Logic ตัวแปรมีดโกน VB มีดโกน VB Loops มีดโกน VB Logic

ASP Classic

แนะนำ ASP ไวยากรณ์ ASP ตัวแปร ASP ขั้นตอน ASP เงื่อนไข ASP ASP วนรอบ แบบฟอร์ม ASP คุกกี้ ASP เซสชัน ASP แอปพลิเคชัน ASP ASP #รวม ASP Global.asa ASP AJAX อีเมล ASP ตัวอย่าง ASP

การอ้างอิง ASP

ฟังก์ชัน ASP VB คีย์เวิร์ด ASP VB การตอบสนอง ASP คำขอ ASP แอปพลิเคชัน ASP เซสชัน ASP เซิร์ฟเวอร์ ASP ข้อผิดพลาด ASP ASP FileSystem ASP TextStream ไดรฟ์ ASP ไฟล์ ASP โฟลเดอร์ ASP พจนานุกรม ASP ASP AdRotator ASP BrowserCap การเชื่อมโยงเนื้อหา ASP ตัวหมุนเนื้อหา ASP ASP Quick Ref

กวดวิชา ADO

แนะนำ ADO ADO Connect ชุดระเบียน ADO จอแสดงผล ADO แบบสอบถาม ADO ADO Sort เพิ่ม ADO ADO Update ADO ลบ สาธิต ADO ADO เร่งความเร็ว

วัตถุ ADO

คำสั่ง ADO การเชื่อมต่อ ADO ข้อผิดพลาด ADO ADO Field พารามิเตอร์ ADO ADO พร็อพเพอร์ตี้ บันทึก ADO ชุดระเบียน ADO ADO สตรีม ประเภทข้อมูล ADO

วัตถุเซสชัน ASP


วัตถุเซสชันเก็บข้อมูลเกี่ยวกับหรือเปลี่ยนการตั้งค่าสำหรับเซสชันผู้ใช้


วัตถุเซสชัน

เมื่อคุณทำงานกับแอปพลิเคชันบนคอมพิวเตอร์ของคุณ คุณเปิดมัน ทำการเปลี่ยนแปลงบางอย่างแล้วปิดมัน นี้เป็นเหมือนเซสชั่น คอมพิวเตอร์รู้ว่าคุณเป็นใคร มันรู้เมื่อคุณเปิดแอปพลิเคชั่นและเมื่อคุณปิด อย่างไรก็ตาม ปัญหาหนึ่งบนอินเทอร์เน็ตคือ เว็บเซิร์ฟเวอร์ไม่รู้ว่าคุณเป็นใครและกำลังทำอะไร เนื่องจากที่อยู่ HTTP ไม่ได้รักษาสถานะไว้

ASP แก้ปัญหานี้ด้วยการสร้างคุกกี้เฉพาะสำหรับผู้ใช้แต่ละราย คุกกี้จะถูกส่งไปยังคอมพิวเตอร์ของผู้ใช้และมีข้อมูลที่ระบุตัวผู้ใช้ อินเทอร์เฟซนี้เรียกว่าวัตถุเซสชัน

วัตถุเซสชันเก็บข้อมูลเกี่ยวกับหรือเปลี่ยนการตั้งค่าสำหรับเซสชันผู้ใช้

ตัวแปรที่จัดเก็บไว้ในออบเจ็กต์ Session จะเก็บข้อมูลเกี่ยวกับผู้ใช้รายเดียว และใช้ได้กับทุกหน้าในแอปพลิเคชันเดียว ข้อมูลทั่วไปที่จัดเก็บไว้ในตัวแปรเซสชัน ได้แก่ ชื่อ รหัส และค่ากำหนด เซิร์ฟเวอร์สร้างวัตถุเซสชันใหม่สำหรับผู้ใช้ใหม่แต่ละราย และทำลายวัตถุเซสชันเมื่อเซสชันหมดอายุ


เซสชั่นเริ่มต้นเมื่อใด

เซสชั่นเริ่มต้นเมื่อ:

  • ผู้ใช้ใหม่ร้องขอไฟล์ ASP และไฟล์ Global.asa มีขั้นตอน Session_OnStart
  • ค่าถูกเก็บไว้ในตัวแปรเซสชัน
  • ผู้ใช้ร้องขอไฟล์ ASP และไฟล์ Global.asa ใช้แท็ก <object> เพื่อยกตัวอย่างวัตถุที่มีขอบเขตเซสชัน

เซสชั่นสิ้นสุดเมื่อใด

เซสชันจะสิ้นสุดลงหากผู้ใช้ไม่ได้ร้องขอหรือรีเฟรชหน้าในแอปพลิเคชันในช่วงเวลาที่กำหนด โดยค่าเริ่มต้น นี่คือ 20 นาที

หากคุณต้องการตั้งค่าช่วงเวลาหมดเวลาที่สั้นกว่าหรือนานกว่าค่าเริ่มต้น ให้ใช้คุณสมบัติTimeout

ตัวอย่างด้านล่างกำหนดช่วงเวลาหมดเวลา 5 นาที:

<%
Session.Timeout=5
%>

ใช้ วิธี ละทิ้งเพื่อสิ้นสุดเซสชันทันที:

<%
Session.Abandon
%>

หมายเหตุ:ปัญหาหลักของเซสชันคือเมื่อใดควรสิ้นสุด เราไม่ทราบว่าคำขอครั้งสุดท้ายของผู้ใช้เป็นคำขอสุดท้ายหรือไม่ ดังนั้นเราจึงไม่ทราบว่าเราควรให้เซสชั่น "มีชีวิตอยู่" นานแค่ไหน การรอเซสชั่นที่ไม่ได้ใช้งานนานเกินไปจะใช้ทรัพยากรบนเซิร์ฟเวอร์ แต่ถ้าเซสชั่นถูกลบเร็วเกินไป ผู้ใช้จะต้องเริ่มต้นใหม่ทั้งหมดอีกครั้งเนื่องจากเซิร์ฟเวอร์ได้ลบข้อมูลทั้งหมดแล้ว การหาช่วงเวลาที่เหมาะสมอาจเป็นเรื่องยาก!

เคล็ดลับ:จัดเก็บข้อมูลจำนวนเล็กน้อยในตัวแปรเซสชันเท่านั้น!



จัดเก็บและเรียกข้อมูลตัวแปรเซสชัน

สิ่งที่สำคัญที่สุดเกี่ยวกับวัตถุ Session คือคุณสามารถเก็บตัวแปรไว้ได้

ตัวอย่างด้านล่างจะตั้งค่า ชื่อผู้ใช้ตัวแปรเซสชัน เป็น "โดนัลด์ดั๊ก" และ อายุตัวแปรเซสชันเป็น "50":

<%
Session("username")="Donald Duck"
Session("age")=50
%>

เมื่อค่าถูกเก็บไว้ในตัวแปรเซสชัน สามารถเข้าถึงได้จากหน้าใดก็ได้ในแอปพลิเคชัน ASP:

Welcome <%Response.Write(Session("username"))%>

บรรทัดด้านบนส่งคืน: "ยินดีต้อนรับโดนัลด์ดั๊ก"

คุณยังสามารถจัดเก็บการตั้งค่าผู้ใช้ในออบเจ็กต์เซสชัน จากนั้นเข้าถึงการตั้งค่านั้นเพื่อเลือกหน้าที่จะส่งคืนผู้ใช้

ตัวอย่างด้านล่างระบุเวอร์ชันข้อความเท่านั้นของหน้าหากผู้ใช้มีความละเอียดหน้าจอต่ำ:

<%If Session("screenres")="low" Then%>
  This is the text version of the page
<%Else%>
  This is the multimedia version of the page
<%End If%>

ลบตัวแปรเซสชัน

คอลเล็กชันเนื้อหาประกอบด้วยตัวแปรเซสชันทั้งหมด

เป็นไปได้ที่จะลบตัวแปรเซสชันด้วยวิธี Remove

ตัวอย่างด้านล่างจะลบตัวแปรเซสชัน "sale" หากค่าของตัวแปรเซสชัน "age" ต่ำกว่า 18:

<%
If Session.Contents("age")<18 then
  Session.Contents.Remove("sale")
End If
%>

หากต้องการลบตัวแปรทั้งหมดในเซสชัน ให้ใช้เมธอด RemoveAll:

<%
Session.Contents.RemoveAll()
%>

วนรอบคอลเลคชันเนื้อหา

คอลเล็กชันเนื้อหาประกอบด้วยตัวแปรเซสชันทั้งหมด คุณสามารถวนรอบคอลเลคชันเนื้อหา เพื่อดูว่ามีอะไรอยู่ในคอลเลกชั่น:

<%
Session("username")="Donald Duck"
Session("age")=50

dim i
For Each i in Session.Contents
  Response.Write(i & "<br>")
Next
%>

ผลลัพธ์:

username
age

หากคุณไม่ทราบจำนวนรายการในคอลเล็กชันเนื้อหา คุณสามารถใช้คุณสมบัติ Count ได้:

<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
  Response.Write(Session.Contents(i) & "<br>")
Next
%>

ผลลัพธ์:

Session variables: 2
Donald Duck
50

วนรอบคอลเล็กชัน StaticObjects

คุณสามารถวนรอบคอลเล็กชัน StaticObjects เพื่อดูค่าของออบเจ็กต์ทั้งหมดที่จัดเก็บไว้ในออบเจ็กต์เซสชันได้:

<%
dim i
For Each i in Session.StaticObjects
  Response.Write(i & "<br>")
Next
%>