آژانس هواپیمایی
pop up

تعداد بازدیدکنندگان امروز

شروع موضوع توسط shimakh ‏19 جولای 2007 در انجمن asp , ASP.NET

  1. shimakh

    shimakh کاربر تازه وارد

    تاریخ عضویت:
    ‏11 دسامبر 2006
    نوشته ها:
    115
    تشکر شده:
    0
    سلام
    چطور می تونم تعداد بازدید کننده های امروز رو از طریق ای اس پی کلاسیک مشخص کنم؟
     
  2. amin_lili

    amin_lili کاربر تازه وارد

    تاریخ عضویت:
    ‏24 آپریل 2007
    نوشته ها:
    528
    تشکر شده:
    2
    محل سکونت:
    ای کاش آنجا ...
  3. tabeez

    tabeez Registered User

    تاریخ عضویت:
    ‏7 دسامبر 2006
    نوشته ها:
    260
    تشکر شده:
    0
    مرسی امین جان...
     
  4. shimakh

    shimakh کاربر تازه وارد

    تاریخ عضویت:
    ‏11 دسامبر 2006
    نوشته ها:
    115
    تشکر شده:
    0
    سلام
    من از این کد استفاده کردم ولی تعداد بازدید کننده ها ی امروز رو همواره 1 نشون می ده ! !!
    شما می دونید علتش چیه؟
     
  5. alireza sh

    alireza sh مدیر بازنشسته

    تاریخ عضویت:
    ‏2 ژانویه 2006
    نوشته ها:
    2,668
    تشکر شده:
    66
    محل سکونت:
    نصف جهان
    این کد بازدید کننده های فعلی رو نشون میده .

    برای اینکه شما بتونین کار مورد نظرتون رو انجام بدین چند تا راه دارید

    یکی اینکه به ازای استارت شدن هر session ، یک واحد به یک شمارنده در شیء application اضافه کنین

    اما بهترین راه داشتن یک جدول جدا در دیتابیس است که شما بتونین آمار رو ذخیره کنین و بعدا هم بتونین آمار گیری کنین .
     
  6. shimakh

    shimakh کاربر تازه وارد

    تاریخ عضویت:
    ‏11 دسامبر 2006
    نوشته ها:
    115
    تشکر شده:
    0
    ولی این کد تعداد بازدید کننده های فعلی رو هم همواره 1 نشون میده !!!!
    من امتحانش کردم ولی درست عمل نمی کنه !!!

    برای اینکه بتونم توی دیتا بیس تعداد رو ذخیره کنم باید به جای session به مقدار دیتا بیس یکی اضافه کنم؟
    برای جدا کردن اطلاعات هر روز از روز دیگه باید چیکار کنم؟
    من سر این کد یه مقدار مشکل دارم میشه بیشتر توضیح بدید
    متشکرم
     
  7. boxilink
  8. alireza sh

    alireza sh مدیر بازنشسته

    تاریخ عضویت:
    ‏2 ژانویه 2006
    نوشته ها:
    2,668
    تشکر شده:
    66
    محل سکونت:
    نصف جهان
    ببینید

    چندین راه برای این مساله وجود دارد . من یکی از آنها ( و نه بهترین ) را برایتان شرح میدهم .

    در فایل global.asax ، ابتدا در متد application_start ، یک متغیر در شیء application تعریف کنید که تعداد بازدید کننده های امروز را ذخیره کند

    اکنون در متد session_start ، کافی است کدی بنویسید که به آن متغیر در شیء application یک واحد اضافه کند .

    اکنون فقط کافی است به محض آغاز شدن روز بعد شما مقدار آن متغیر را در دیتابیس ذخیره کنید ، سپس آن را صفر کنید .
    این که آغاز روز بعد را چگونه تشخیص دهیم ، من الان ایده ای ندارم ولی میتوانید مثلا در همان شیء application ، یک متغیر دیگر داشته باشید که تاریخ امروز را ذخیره کند. سپس در session_start ، قبل از افزودن به مقدار شمارنده ، آن تاریخ را با تاریخ فعلی مقایسه کنید . اگر یکی نبودند ، یعنی روز جدید آغاز شده است . التبه راههای بهتری هم مسلما هست که متاسفانه من الان حضور ذهن ندارم .


    متاسفانه وقت نوشتن کد را هم ندارم ! باید ببخشید
     
  9. tabeez

    tabeez Registered User

    تاریخ عضویت:
    ‏7 دسامبر 2006
    نوشته ها:
    260
    تشکر شده:
    0
    همونطور که ar.shirazi عزیز فرمودن در ابتدا یه شیء Application رو در Application_OnStart ایجاد کن...

    بعد از Session_Onstart هم این کد رو اضافه کن..

    در session_onend هم ...

    حالا تو صفحه ای که میخوای تعداد کاربران رو نمایش بدی اینو اضافه میکنی

    این کد بالائی دققا تعداد افراد رو نشون میده که خودت میتونی متنی رو قبل یا بعد از اون اضافه کنی...
     
  10. shimakh

    shimakh کاربر تازه وارد

    تاریخ عضویت:
    ‏11 دسامبر 2006
    نوشته ها:
    115
    تشکر شده:
    0
    ممنونم که وقت گذاشتید ولی 2 تا مشکل وجود داره :
    1- تمام کارهایی رو که گفتید انجام دادم ولی متأسفانه چیزی چاپ نشد
    HTML:
    Imports System.Web
    Imports System.Web.SessionState
    
    Public Class Global
        Inherits System.Web.HttpApplication
    
    #Region " Component Designer Generated Code "
    
        Public Sub New()
            MyBase.New()
    
            'This call is required by the Component Designer.
            InitializeComponent()
    
            'Add any initialization after the InitializeComponent() call
    
        End Sub
    
        'Required by the Component Designer
        Private components As System.ComponentModel.IContainer
    
        'NOTE: The following procedure is required by the Component Designer
        'It can be modified using the Component Designer.
        'Do not modify it using the code editor.
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
            components = New System.ComponentModel.Container()
        End Sub
    
    #End Region
    
        Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
            ' Fires when the application is started
            Application("intactiveusernumber") = 0
        End Sub
    
        Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
            ' Fires when the session is started
            Session.Timeout = 20
            Application.Lock()
            Application("intactiveusernumber") = Application("intactiveusernumber") + 1
            Application.UnLock()
    
    
        End Sub
    
        Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
            ' Fires at the beginning of each request
        End Sub
    
        Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
            ' Fires upon attempting to authenticate the use
        End Sub
    
        Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
            ' Fires when an error occurs
        End Sub
    
        Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
            ' Fires when the session ends
            Application.Lock()
            Application("intactiveusernumber") = Application("intactiveusernumber") - 1
            Application.UnLock()
    
        End Sub
    
        Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
            ' Fires when the application ends
        End Sub
    
    End Class
    

    وقتی هم که خواستم چاپش کنم توی یک فرم دیگه مقدار رو توی یک لیبل ریختم

    HTML:
    Label7.text=Application("intActiveUserNumber")

    البته این خط رو توی قسمت پیج لود نوشتم
    ولی موقع اجرا چیزی توی لیبل وجود نداره !!!

    2- مشکل جالبتر اینه که :

    همونطور که در پست اولم گفته بودم من می خواستم توی ای اس پی کلاسیک این کار رو انجام بدم:)

    به این ترتیب مشکلم شد دو تا ;)
    اگه لطف کنید راهنمایی کنید ممنون می شم
    راستی این کارها رو هم توی دات نت یک انجام دادم
     
  11. tabeez

    tabeez Registered User

    تاریخ عضویت:
    ‏7 دسامبر 2006
    نوشته ها:
    260
    تشکر شده:
    0
    دوست عزیز این کد برا ASP کلاسیک هست...
    من نمونه اصلی کد رو برات میزارم ، اینو تایپ کردم ممکنه کم و زیاد شده ...
    در ضمن این کد اصلی رو که میزارم خودم تو ASP.net 2 پیاده کردم و 100% جواب میده...


    و در صفحه هم به این صورت مقدار رو رایت کن ببین حل میشه یا نه...

    این کدها رو هم اینطور کپی کن، فکرنمیکنم مشکلی پیش بیاد...
     
  12. shimakh

    shimakh کاربر تازه وارد

    تاریخ عضویت:
    ‏11 دسامبر 2006
    نوشته ها:
    115
    تشکر شده:
    0
    سلام
    از راهنماییها و همینطور حوصله کردنتون بسیار بسیار سپاسگذارم
    نه تنها تعداد بازدید کنندهای امروز توی سایتم درست شد بلکه کلی اطلاعات جانبی هم کسب کردم !
    ضمنا وبلاگتون رو دیدم و خوندم جالب بود;)
    موفق و پیروز باشید
     
  13. shimakh

    shimakh کاربر تازه وارد

    تاریخ عضویت:
    ‏11 دسامبر 2006
    نوشته ها:
    115
    تشکر شده:
    0
    راستی 1 سوال خیلی مهم !
    Session.Timeout = 20
    این فقط برای 20 دقیقه کار میکنه
    من برای نمایش تعداد بازدید کننده های هر روز باید مقدار اون رو 1440 دقیقه یعنی 24 ساعت قرار بدم ؟
     
  14. avajang.com .leftavajang.com.right
  15. shimakh

    shimakh کاربر تازه وارد

    تاریخ عضویت:
    ‏11 دسامبر 2006
    نوشته ها:
    115
    تشکر شده:
    0
    من مقدار session timeout رو 1440 قرار دادم ولی بازم بعد از چند دقیقه تعداد رو از یک شروع می کنه
    برای حل این مشکل باید چیکار کرد؟؟؟
     
  16. shimakh

    shimakh کاربر تازه وارد

    تاریخ عضویت:
    ‏11 دسامبر 2006
    نوشته ها:
    115
    تشکر شده:
    0
    سلام
    تعداد بازدیدکنندگان فعلی درست شد
    session timeout رو هم 20 قرار دادم
    ولی آخرشم نفهمیدم تعداد بازدیدکنندگان امروز رو چطور باید به دست بیارم;)
     
  17. tabeez

    tabeez Registered User

    تاریخ عضویت:
    ‏7 دسامبر 2006
    نوشته ها:
    260
    تشکر شده:
    0
    برا داشتن تعداد بازدیدکنندهای امروز فکر میکنم باید مقدار اون رو دیتابیست ذخیره کنی..
    یعنی هر کاربر رو که وارد شد، یکی به اون اضافه کنی همراه تاریخ روزی که وارد شده، بعد گزارش گیری کنی ازش..
    البته راه‌های خیلی خیلی!! ساده تری هم حتما هست که فکر کنم دوستان بهتر میتونن کمکتون کنن...
     
  18. shimakh

    shimakh کاربر تازه وارد

    تاریخ عضویت:
    ‏11 دسامبر 2006
    نوشته ها:
    115
    تشکر شده:
    0
    متشکرم
    ولی ظاهرا کسی نیست:wacko:
     
  19. Graveworm

    Graveworm Registered User

    تاریخ عضویت:
    ‏23 می 2005
    نوشته ها:
    1,063
    تشکر شده:
    12
    محل سکونت:
    Tehran
    خوب باید بازدید ها رو ذخیره کنی و بعدش بخونی
    حالا تو text یا ,db