السلام عليكم ورحمة الله وبركاته
في موضوع سابق شرحنا طريقة عمل عدد الزوار الكلي للموقع باستخدم ملف تكست txt
رابط الموضع السابق
http://www.swalif.net/softs/showthread.php?t=164190
اليوم ان شاء الله بنعمل عدد زوار الموقع الكلي باستخدام قواعد البيانات
بالاضافة لعدد الزوار المتواجدون في الموقع الان
عملنا سيكون في ملف
Global.asax
في الدوت نت 2003 يتم انشاء الملف بشكل تلقائي بينما في ال 2005 يجب عليك اضافته من اضافة عنصر جديد
اولاً:- عدد الزوار المتواجدون في الموقع الان
في ملف
Global.asax
في داخل الدالة
Application_Start
كود:
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
End Sub
وهذه الدالة يتم بنفيذها مرة واحده عند بداية تطبيق المشروووع في ال IIS
يعني عند تركيبه على السيرفر
نقوم بتعريف عدد الزوار المتواجدون الان بالشكل التالي
Application("ActiveVisitor") = 0
فيكون الناتج هو
كود:
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
' Code that runs on application startup
'تعريف عداد الزوار المتواجدين اون لاين
Application("ActiveVisitor") = 0
End Sub
الان عند دخول اي متصفح للموقع نقوم باضافة عدد واحد على عدد الزوار المتواجدون الان
وعند خروجة من الموقع نقوم بانقاص عدد واحد من عدد الزوار المتواجدون الان
في داخل الدالة
Session_Start
والتي يتم تطبيقها مباشرة عند دخول اي زااائر للموقع نقوم باضافة عدد واحد على عدد المتواجدون الان في الموقع بالشكل النالي
كود:
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
'نزيد عدد واحد على عداد الزوار المتواجدون
Application.Lock()
Application("ActiveVisitor") = Application("ActiveVisitor") + 1
Application.UnLock()
End Sub
الدالة التي يتم تنفيذها عند خروح الزائر من الموقع هي
Session_End
فعند خروج المستخدم من الموقع نقوم بانقاص عدد واحد من عدد المتواجدون الان بالشكل التالي
كود:
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
'ننقص العدد واحد من عداد الزوار
Application.Lock()
Application("ActiveVisitor") = Application("ActiveVisitor") - 1
Application.UnLock()
End Sub
الان في اي صفحة من صفحات المشروع نفسه نقوم بطباعة عدد المتواجدون الان في الموقع من خلال طباعة عددهم في داخل الابليكشن
Application("ActiveVisitor")
مثلا تضيف ليبل للعرض وتكتب فيه عدد المتواجدون الان
كود:
OnLine.Text = Application("ActiveVisitor")
ثانياً:- عدد الزوار الكلي
نقوم بعمل حقل في قاعدة البيانات في داخل اي جدول مثلا جدول الخاص بالمعلومات العامة بالموقع نقوم باضافة حقل لعدد الزوار الكلي
يتم اضافة عدد واحد على عدد الزوار الكلي للموقع عند دخول اي زائر للموقع
ففي دالة
Session_Start
ننفذ كود على قواعد البيانات
اولا نقوم بجلب العدد الموجود في حقل عدد الزوار الكلي
ومن ثم نضيف له عدد واحد
ومن ثم نقوم بتحديث الحقل في قاعدة البيانات ونزرع العدد الجديد به بالطريقة التاليه
كود:
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
' Code that runs when a new session is started
'زيادة رقم واحد على عدد الزوار الكلي في الموقع
Dim Con As SqlClient.SqlConnection = New SqlClient.SqlConnection
Dim Cmd As SqlClient.SqlCommand = New SqlClient.SqlCommand
Dim Adap As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter
Dim SQLStr As String
Dim ConStr As String = ConfigurationSettings.AppSettings("ConnectionString")
Con.ConnectionString = ConStr
'جلب عدد زوار الموقع
Dim DataSetSO As New DataSet
SQLStr = "select HitCounter from MN_PublicOptions"
Cmd.CommandText = SQLStr
Cmd.Connection = Con
Con.Open()
Adap.SelectCommand = Cmd
Adap.Fill(DataSetSO)
Con.Close()
Dim HitCounter As integer = DataSetSO.Tables(0).Rows(0)(0)
'زيادة عدد زوار الموقع رقم واحد
HitCounter = HitCounter + 1
'اعادة تخزين عدد زوار الموقع الجديد في قاعدة البيانات
SQLStr = "update MN_PublicOptions set HitCounter=" & HitCounter
Cmd.CommandText = SQLStr
Cmd.Connection = Con
Con.Open()
Cmd.ExecuteNonQuery()
Con.Close()
End Sub
في امان الله