الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برمجة عدد الزوار الحاليين

مغلق
بدأه ahmad1024 في 18 أبريل 2006 · 10 رد · 1,602 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ارجو مساعدتي في عمل عداد للزوار الفعالين (اي الموجوديين في الموقع ), علما

بأنني كتبت الكود اللازم لمعرفة عدد الزوار بشكل عام.

 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As  System.EventArgs) Handles MyBase.Load
      
     Label1.Text = ("You are Visitor Number : " & Application("visitor"))
   
 End Sub

Global.asax.vb

 Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
        Application.Lock()
        Application("visitor") += 1
        Application.UnLock()
    End Sub

ولكن كما تعلمون بان هذا الكود يحسب العدد الكلي لجميع الزوار بغض النظر عن الذين خرجوا من الموقع ,فما هو الحل؟ جزاكم الله خيرا ...

#2

السلام عليكم

هذا وجدته في أحد المواقع ولم أجربه يا ليتك تشوفه وتعطينا النتيجة

في صفحة Global.asa

SUB Application_OnStart
	' Set our user count to 0 when we start the server 
	Application("ActiveUsers") = 0
END SUB

SUB Session_OnStart
	' Change Session Timeout differently (minutes) if you need to -  default is 20 minutes
	'Session.Timeout = 10 
	' Set a Session Start Time - This is really only important to make sure we start a session 
	Session("Start") = Now 
	' Increase the active visitors count when we start the session 
	Application.Lock 
	Application("ActiveUsers") = Application("ActiveUsers") + 1 
	Application.UnLock
END SUB

Sub Session_OnEnd
	' Decrease the active visitors count when the session ends. 
	Application.Lock 
	Application("ActiveUsers") = Application("ActiveUsers") - 1
	Application.UnLock
END SUB

في الصفحة التي تريد عرض النتيجة فيها

    <%
    strNumber=Application("ActiveUsers")
    response.write (strNumber)
    %>
#3

المشكله انو الكود اللي بداخل Sub Session_End ما بتنفذ يعني ما بنقص الزائر اللي بخرج

لذلك بطلع عدد الزوار اللي فاتو الموقع.

#4

شكرا اخي hsn67 من متره بدور على هالكود

abdullahf4.jpg
#5

ماهو الكود المقابل له في #C ؟

#6

أعضاء المنتدى الكرام أرجو الرد للأهمية فلقد حاولت لكنني لم أستطع حيث يتعامل مع application على أساس أنه object ويرفض أي عملية عليه.

وشكرأ

#7

ال Application هو عبارة عن Collection class لذلك ستتعامل معه كما تتعامل مع اي collection

Application["ActiveUsers"]

الحقيقة لم اتأكد من الأكواد ولكني اظن ان هذا ما كنت تقصده , لأن ال collection في VB.NET يختلف عن CSharp

والله ولي التوفيق

مجموعة الدوت نت في السعودية , اشترك معنا لتحصل على كل مفيد في عالم الدوت نت

dotnetinsaudi-subscribe@yahoogroups.com

#8

قمت بعمل ماذكرت إلا أنني بمجرد كتابة

Application["visitor"] += 1

يرفض بإعتباره object ولايمكن القيام بعملية الجمع له

#9

in C#

private void Page_Load(object sender, System.EventArgs e)
  {
 	 if(!IsPostBack)
 	 {
    if(Session["log"].ToString()!="1")
    {
   	 Response.Redirect("defualt.aspx");
   	 return;
    }

    Visitors.Text ="you are 1 user of  ( "+ Global.ActiveUsers.ToString()+" ) Online users";
 	 }

in Global.asax

public class Global : System.Web.HttpApplication

	{

  protected static int m_ActiveUsers;
                              public static int ActiveUsers
  {
 	 get { return m_ActiveUsers; }
  }

                  protected void Application_Start(Object sender, EventArgs e)//raised on first ASP.NET responds to a request
  {
 	 // The following example uses Lock() and UnLock() to prevent other sessions from 
 	 //changing the value of the m_ActiveUsers variable until after the local session has changed it.

 	 Application.Lock();
 	 m_ActiveUsers = 0;
 	 Application.UnLock();
  }




protected void Session_Start(Object sender, EventArgs e)//raised when user enter the page
  {
 	 

 	 Application.Lock(); 	 
 	 ++m_ActiveUsers;
 	 Application.UnLock();	
  }


protected void Session_End(Object sender, EventArgs e)//raised when user exit the page
  {
 	 Application.Lock(); 	 
 	 --m_ActiveUsers;  //decrease the number of active user by one
 	 Application.UnLock();	
  }
#10

بس في عندي سؤال

Session_End لا ينفذ الى عند انتهاء timeout للسيشن

كيف ممكن أنفذو أي يقل عدد الزوار الحاليين عند خروج أي user??

#11

شكرا أخي joseph_man أنا كنت أريد عدد زوار الموقع ككل وليس الفعليين وقد لاحظت أنك أستخدمت متغيير static بينما في vb.net لم يضطر الى تعريف متغير وأستخدم application ومن المفترض أن توجد في #C وبنفس الطريقة هل كلامي صحيح؟؟؟؟

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…