คือว่าผมมี souce code ข้างล่างนี้นะครับ คือว่าเมื่อเราเข้าสู่ระบบ แล้วหลังจากนั้นเราก็ออกจากระบบ เมื่อผมทำการออกจากระบบ ผมจะทำการลบ Session ที่ผมเก็บไว้หน้าใน admin นะครับ
แต่เวลาเราออกจากระบบ แล้วหลังจากนั้นเราคลิก back มันก็ยังไม่ลบ Session นั้นนะครับจึงทำให้เราสามารถเข้าระบบได้โดยที่ไม่ต้อง Login ก่อนเข้าสู่ระบบ
แต่ถ้าหากคลิก back แล้วคลิกให้มัน Reffce มันก็จะทำการลบ Session นั้นแล้วเด้งออกไปหน้า Login นะครับ มันทราบว่าพอจะมีวิธีการแก้ไขมันครับ
ช่วยหน่อยนะครับพี่
แต่เวลาเราออกจากระบบ แล้วหลังจากนั้นเราคลิก back มันก็ยังไม่ลบ Session นั้นนะครับจึงทำให้เราสามารถเข้าระบบได้โดยที่ไม่ต้อง Login ก่อนเข้าสู่ระบบ
แต่ถ้าหากคลิก back แล้วคลิกให้มัน Reffce มันก็จะทำการลบ Session นั้นแล้วเด้งออกไปหน้า Login นะครับ มันทราบว่าพอจะมีวิธีการแก้ไขมันครับ
ช่วยหน่อยนะครับพี่
****************************หน้าแรกครับ Index.asp******************************
<% Session.Abandon%>
*************************************************************************************
*****************************Result_Login.asp***************************
if rs.Recordcount<> 0 then
Session("UserName")= Rs("TrafficName")
Response.Redirect("/TrafficProject/Admin.asp")
*******************************************************************************************
******************************หน้า admin.asp ******************************************
<% Response.Write(Session("UserName")) %>
<%if Session("UserName") = "" then 'ถ้า session ที่ตั้งไว้เป็นค่าว่าง
'Response.write "คุณไม่ได้ Login หรือ เวลา session หมดครับ" ' หรือให้เด้งไปหน้าไหนก็ใส่ redirect ไป
Response.Redirect("/TrafficProject/LoginAdmin.asp")
end if
%>
*************************************************************************************************
<% Session.Abandon%>
*************************************************************************************
*****************************Result_Login.asp***************************
if rs.Recordcount<> 0 then
Session("UserName")= Rs("TrafficName")
Response.Redirect("/TrafficProject/Admin.asp")
*******************************************************************************************
******************************หน้า admin.asp ******************************************
<% Response.Write(Session("UserName")) %>
<%if Session("UserName") = "" then 'ถ้า session ที่ตั้งไว้เป็นค่าว่าง
'Response.write "คุณไม่ได้ Login หรือ เวลา session หมดครับ" ' หรือให้เด้งไปหน้าไหนก็ใส่ redirect ไป
Response.Redirect("/TrafficProject/LoginAdmin.asp")
end if
%>
*************************************************************************************************
ผมต้องบอกตามตรงว่าผมเคยเขียน application ด้วย ASP(2.0)
แล้วติดปัญหาเรื่อง session เหมือนกัน แล้วเท่าที่ค้นหาข้อมูลจาก MSDN
แล้วได้ความว่า ASP นั้นใช้งาน session โดยเป็นแบบ cookie-based
โดยใน MSDN นั้นแจ้งว่าให้ทำการ manage session โดยการประกาศ การทำงานหลักไว้ใน global.asax ด้วยครับใน function Session_OnStart() และ Session_OnEnd() เพื่อทำการการลบ session ทั้งหมดออกครับ โดยเมื่อเรียก Session.Abandon แล้ว application จะเรียกใช้ function Session_OnEnd()
สามารถอ่านได้ใน http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnasp/html/aspwsm.asp
ตรงนี้ต้องขอบอกว่าผมยังไม่ได้ทดลองจริงๆครับ
โดยใน MSDN นั้นแจ้งว่าให้ทำการ manage session โดยการประกาศ การทำงานหลักไว้ใน global.asax ด้วยครับใน function Session_OnStart() และ Session_OnEnd() เพื่อทำการการลบ session ทั้งหมดออกครับ โดยเมื่อเรียก Session.Abandon แล้ว application จะเรียกใช้ function Session_OnEnd()
สามารถอ่านได้ใน http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnasp/html/aspwsm.asp
ตรงนี้ต้องขอบอกว่าผมยังไม่ได้ทดลองจริงๆครับ
korakot_titla

Wed 23 Nov 2005 13:32:55
Wed 23 Nov 2005 13:32:55
พี่ครับคือผมไปเจอมาจาก web แห่งหนึ่งนะครับไม่ทราบว่าพี่พอจะอธิบายหรือนำมาประยุกต์ใช้กับ คำถามที่ผมถามไปได้หรือป่าวครับ ได้หรือไม่ได้ยังไงก็ช่วยบอกหน่อยนะครับ
korakot_titla

Wed 23 Nov 2005 13:36:12
Wed 23 Nov 2005 13:36:12
ลืมบอกไปว่าเค้า save เป็นชื่อนี้นะครับ global.asa
ขอโทษทีครับที่แจ้งข้างบนว่า Global.asax นั้นลืมไปว่า ใน ASP(2.0) นั้นจะใช้ Global.asa ครับ
ส่วนโค๊ดที่ให้มานี้จะเป็นการประยุกต์ใช้ Component Application เพื่อใช้ในการนับคนที่ทำการ online อยู่ครับ ซึ่งก็เป็นหลักการที่ใช้ Session เหมือนกันครับ โดยอย่างที่ผมได้แจ้งไว้แล้วว่าเมื่อ Application เริ่มทำงานจะมีการเรียกใช้งาน Session_OnStart() และเมื่อเราทำลาย Session จะมีการเรียกใช้ Session_OnEnd() ใน Global.asa ครับ
ส่วนตรงที่ Session.Timeout = 10 นี้เป็นการระบุว่า Session จะ idle ได้เพียง 10 นาทีครับ
ส่วนโค๊ดที่ให้มานี้จะเป็นการประยุกต์ใช้ Component Application เพื่อใช้ในการนับคนที่ทำการ online อยู่ครับ ซึ่งก็เป็นหลักการที่ใช้ Session เหมือนกันครับ โดยอย่างที่ผมได้แจ้งไว้แล้วว่าเมื่อ Application เริ่มทำงานจะมีการเรียกใช้งาน Session_OnStart() และเมื่อเราทำลาย Session จะมีการเรียกใช้ Session_OnEnd() ใน Global.asa ครับ
ส่วนตรงที่ Session.Timeout = 10 นี้เป็นการระบุว่า Session จะ idle ได้เพียง 10 นาทีครับ
baskza

Wed 19 Jul 2006 11:04:35
Wed 19 Jul 2006 11:04:35
ไฟล์ Global.asa นั้นเป็นไฟล์ที่สามารถเข้าถึงได้จากทุหน้า
ไม่ว่าจะประกาศเมทธอด, ออปเจ็ก, ตัวแปร ใน asp application นั้นๆครับ
ส่วนคำจำกัดความนั้นยังไม่เคยเห็นครับ

















