قبل از مطالعه این صفحه ، حتما مطالب زیر مطالعه شده باشد :
یک فایل اختیاری است
در این فایل ما کارهایی را که می خواهیم در زمان روی دادن رویدادهای مربوط به جلسه و شی اپلیکیشن اجرا شود را می نویسیم
دقیقا اسم این فایل باید global.asa باشد .
و کجا ان را ذخیره کنیم ؟
درست در ریشه سایت . یعنی در جایی که سایت را ذخیره می کنیم
با این فایل می توان کارهای خیلی مفید و خوبی انجام داد
مثلا :
از این فایل استفاده می کنیم تا نشان دهیم هم اکنون چند کاربر فعال در سایت ما هستند ؟
و همچنین می توان مشخص کرد که اطلاعات دریافت شده از سیستم هر کاربر در بانک اطلاعاتی در ون سرور ذخیره شود
مثال برنامه نویسی :
در این مثال نشان می دهیم هم اکنون چند کاربر در حال مشاهده وب سایت ما هستند
دقت کنید که تمام دستورات باید درون تگ های زیر نوشته شود
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
دستورات
</SCRIPT>
قبلا گفتیم که ما چهار رویداد داریم :
* Application_OnStart
* Session_OnStart
* Session_OnEnd
* Application_OnEnd
یاد اوری :
وقتی اولین نفر وارد سایت شما شد ، رویداد Application_OnStart روی می دهد که می توانید برای ان دستوراتی در نظر بگیرید . فرض کنید متغیر a با مقدار 0 را از نوع اپلیکیشن در این رویداد ایجاد می کنیم .
چند لحظه بعد یک نفر دیگر هم وارد سایت ما می شود ، حواسمون باشه متغیر a چون از نوع اپلیکیشن بود ، پس برای کاربر دوم هم قابل استفاده است . یعنی متغیرهای از نوع اپلیکیشن بین کاربرانی که در مکانهای مختلف ولی همزمان دارند از سایت ما دیدن می کنند ، به اشتراک گذاشته می شوند .
و وقتی اخرین کاربر هم سایت ما را بست و دیدن تمام شد ، شی اپلیکیشن نابود می شود .
اما برای هر کاربری که وارد سایت ما می شود می توان متغیری فقط برای همان کاربر ایجاد کرد که می شود متغیر از نوع جلسه . مثلا متغیر a از نوع جلسه تعریف شود . این a که برای علی ایجاد شده با a که برای رضا تولید خواهد شد فرق دارند .
هر کدام از این رویدادها بصورت زیر در فایل global.asa نوشته می شوند
Sub Application_OnStart
نوشتن دستوراتی که به محض فعال شدن سرور وب سایت ما ، اجرا شود
End Sub
-------------------------------------------------------------------------------
Sub Session_OnStart
نوشتن دستوراتی که به محض ورود هر کار بر به یکی از صفحات سایت ، اجرا شود
Session_OnStart برای هر کاربر مجزا از کاربر دیگرعمل می کند
End Sub
-------------------------------------------------------------------------------
Sub Session_OnEnd
نوشتن دستوراتی که به محض خروج هر کار بر از سایت ، اجرا شود
End Sub
-------------------------------------------------------------------------------
Sub Application_OnEnd
نوشتن دستوراتی که به محض خروج اخرین کار بر از سایت ، اجرا شود
End Sub
برای شمارش تعداد بینندگان انلاین سایت ، ما یک متغیر از نوع اپلیکیشن باید داشته باشیم . نام انرا را به طور مثال ActiveUsers می گذاریم .
به محض فعال شدن سرور وب باید مقدار این متغیر صفر شود
Sub Application_OnStart
Application("ActiveUsers") = 0
End Sub
------------------------------------------------------------------------
هر کاربر که وارد سایت ما می شود یعنی یکی به تعداد بازدیدکنندگان اضافه شود
هر کاربر که وارد سایت می شود رویداد Session_OnStart روی می دهد .می خواهیم زمان خاتمه جلسه هر کاربر را 20 دقیقه کنیم یعنی اگر بعد از بیست دقیقه کاربر دیگر صفحه ای از سایت ما را ندید یا همان صفحه را دوباره رفرش نکرد ، جلسه او با سرور وب ما تمام شود .
از طرفی چون می خواهیم متغفیر اپلیکیشن را که بین همه کاربران عمومی است در اینجا تغییر دهیم بهتر است اول انرا قفل کنیم تا برای کاربر دیگر همزمان با این کاربر تداخل در محاسبات روی ندهد . بعد مقدار را عوض می کنیم و بعد قفل را باز می کنیم
اما گفتیم جلسه را با کدام دستور اغاز می کنیم ؟
بله با دستور Session
ما اینجا نیازی به متغیر جلسه نداریم ولی چون باید با دستور Session جلسه را اغاز کنیم الکی یک متغیر جلسه در نظر می گیریم و مقداری را که کاربردی هم برایمان ندارد در ان قرار می دهیم . در اینجا زمان و تاریخ سرور در متغیر جلسه satrt قرار گرفته است .
و بعد هم یکی به تعداد شمارنده بازدیدکنندگان انلاین افزوده شده است
Sub Session_OnStart
Session.Timeout = 20
Session("Start") = Now
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") + 1
Application.UnLock
End Sub
----------------------------------------------------------------
در مرحله بعد می گوئیم هر کاربری از سایت خارج شود یا اینکه 20 دقیقه ذکر شده تمام شود ، از تعداد شماره بازدیدکنندگان انلاین کم شود . با خروج هر کاربر از سایت ، رویداد Session_OnEnd روی می دهد
Sub Session_OnEnd
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application.UnLock
End Sub
***********************************************
***********************************************
پس محتوای فایل global.asa من به این شکله :
notepad را باز کردم و اینها رو توش نوشتم
Sub Application_OnStart
Application("ActiveUsers") = 0
End Sub
Sub Session_OnStart
Session.Timeout = 20
Session("Start") = Now
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") + 1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application.UnLock
End Sub
***********************************************
***********************************************
آموزش php...
برچسب : نویسنده : phpnuk php بازدید : 191