Make your own free website on Tripod.com
Click here to visit our sponsor
Free Advertising from Click2Net!

บทเรียนที่ 6 ไฟล์ Global.asa



global.asa เป็นไฟล์เสริมเพิ่มเติมสำหรับการใช้งาน ASP ในชั้นสูง ไฟล์นี้มีประโยชน์คือ จะทำหน้าที่เก็บค่าต่างๆ
ไว้ใช้ในภายหลัง ไฟล์นี้จะต้องเก็บอยู่ที่ Root ของ ASP application โดย web server จะอ่านค่าต่างๆในไฟล์นี้
มาประมวลผลและเก็บไว้ในหน่วยความจำ รอการเรียกใช้จากผู้ใช้ทั่วไปหรือผู้พัฒนาโปรแกรม การแก้ไขไฟล์นี้
ในภายหลังจะไม่เกิดผลการเปลี่ยนแปลงเลย เหมือนกับไฟล์ .asp ทั่วไป จะต้องทำการ Restart Server หรือ
โปรแกรม PWS/IIS ถึงจะเกิดการเปลี่ยนแปลง ภายในไฟล์จะแบ่งเป็น 2 ส่วนหลักๆคือ Application Events
และ Session Events ส่วนรายละเอียดเป็นอย่างไรนั้นแนะนำให้อ่านใน Road map ส่วนในบทเรียนนี้
เราจะให้คุณได้ลองใช้ global.asa ก่อนอื่นสร้างไฟล์ก่อนนะครับ

[ /global.asa ]

<SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>

'เปิดไฟล์ Text สำหรับบันทึกจำนวนผู้เข้าเยี่ยมชมเว็บไซต์ การเรียกใช้มีคำอธิบายอยู่ด้านล่าง
'ในส่วนของ Sub Application_OnStart นี้สามารถใส่ application อื่นๆได้อีกตามต้องการ
'แต่สิ่งที่จะใส่ในส่วนนี้ควรเป็น โปรแกรมที่ต้องมีการ share หรือใช้ตัวแปรนี้ร่วมกันทุกคนที่เข้ามาในเว็บไซต์
'เช่น จำนวน visitor ในตัวอย่างนี้ หรืออาจจะนำมานับจำนวนคนที่กำลัง connect กับเว็บไซต์ของคุณ
'อยู่ก็ได้

Sub Application_OnStart
VisitorCountFilename = Server.MapPath("/cgi-bin/visitors.txt")
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Set Out= FileObject.OpenTextFile (VisitorCountFilename, 1, False, False)
Application("visitors") = Out.ReadLine
Application("VisitorCountFilename") = VisitorCountFilename
End Sub

'ถ้าเปิด Application ใดๆใน Application_OnStart ควรต้องมาปิดในนี้ด้วย
Sub Application_OnEnd
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Set Out= FileObject.CreateTextFile (Application("VisitorCountFilename"), True, False)
Out.WriteLine(Application("visitors"))
Out.Close
End Sub


'Sub Session_OnStart นี้ใช้สำหรับส่งหรือบันทึกตัวแปรไว้เพื่อให้ผู้ใช้เว็บไซต์แต่ละคน
Sub Session_OnStart
'ดูตัวอย่างการนำ session สองตัวแปรนี้ไปใช้ในไฟล์ .asp ได้ที่ตัวอย่างด้านล่าง
Session("PageTheme") = "background=/bg.jpg text=#000000 bgcolor=#ffffff link=#0000ee vlink=#551A8B alink=#ff0000"
Session("PageTitle") = " Website.com - Your website title here "

'เขียนจำนวนผู้ใช้เว็บเพิ่มอีก 1 คน
Application.Lock
Application("visitors") = Application("visitors") + 1
t_visitors = Application("visitors")
Application.Unlock
Session("VisitorID") = t_visitors
If t_visitors MOD 15 = 0 Then
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Set Out= FileObject.CreateTextFile (Application("VisitorCountFilename"), True, False)
Application.Lock
Out.WriteLine(t_visitors)
Application.Unlock
End If
End Sub


'ลบตัวแปรที่กำหนดไว้ใน Sub Session_OnStart
Sub Session_OnEnd
Session("PageTheme") = Nothing
Session("PageTitle") = Nothing
End Sub

</SCRIPT>




การเรียกใช้ตัวแปรและ Application ที่กำหนดไว้ใน global.asa
1. Application ในการนับจำนวนผู้ใช้เว็บไซต์
การใช้คุณจะต้อง สร้างไฟล์ text ว่างๆชื่อ visitors.txt ไว้ใน /cgi-bin ก่อน
จากนั้นให้เรียกใช้เว็บไซต์จากส่วนใดก็ได้ที่มีนามสกุลไฟล์ .asp ซึ่งจะทำให้ webserver
อ่านไฟล์ global.asa จากนั้น ASP จะเขียนจำนวนตัวเลขไว้ในไฟล์ text ดังกล่าว
ในครั้งต่อไปที่ท่านเรียกไฟล์ .asp ใดๆในเว็บไซต์อีก จำนวนตัวเลขที่อยู่ในไฟล์นี้ก็จะเพิ่ม
ขึ้นมาอีก 1 ส่วนการนำตัวเลขในไฟล์ visitors.txt มาแสดงในเว็บไซต์ ก็เพียงแต่แทรก
code ต่อไปนี้ในไฟล์.asp ในตำแหน่งที่ต้องการ
You are visitors No. <%=Application("visitors")%> Since mm/dd/yy

2. การนำ session PageTheme และ Session PageTitle ไปใช้ในไฟล์ .asp ใดๆในเว็บไซต์
ให้คุณสร้างไฟล์ .asp อะไรก็ได้ขึ้นมา 1 ไฟล์ แต่ในส่วนหัวของไฟล์ให้ใส่ code ต่อไปนี้ไว้
จากนั้นลองเรียกไฟล์ดูเพื่อดูผล ไฟล์ทุกไฟล์ในเว็บไซต์ ถ้าใส่ code นี้ไว้จะทำให้มี Title
และรูปแบบสีของลิ้งค์ ตัวอักษร ภาพพื้นหลังเหมือนกัน ถ้าต้องการเปลี่ยนส่วนใดส่วนหนึ่งก็เพียง
ไปเปลี่ยนที่ไฟล์ global.asa เท่านั้น แล้ว restart IIS หรือ PWS ใหม่ รูปแบบก็จะเปลี่ยน
ไปทันที โดยไม่ต้องไปเสียเวลาแก้ไฟล์แต่ละไฟล์เหมือนกับที่ใช้ .htm หรือ .html ธรรมดา

<html>
<head>
<title><%=Session("PageTitle")%></title>
</head>
<body <%=Session("PageTheme")%>>