تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف نستخدم الاستعلام في ملف Glbal.asax
#1
هذا الملف له احداث معروفة كيف اصيغ كود بحيث يتحقق هل الداخل للموقع مسجل ام لا بواسطة session
أستودعكم الله الذي لا تضيع ودائعه أرجو ان تجدوا بمشاركاتي ما يجعلكم تدعون لي بخير ان تحتم غيابي.
الرد }}}}
تم الشكر بواسطة:
#2
طيب اخواني سؤال آخر كيف اخرج العضو من ضمن المتواجدين الان؟ لاني اضيفه عن طريق تعديل عمود Online=1 عند تسجيل الدخول وعند الخروج اغيرها الى 0 لكن لو لم يسجل خروج ستظل القيمة ثابتة بالقاعدة كيف اعالج الامر؟؟
اخواني انا ابرمج منتدى افضل من اللي انا سويتهم من قبل فارجو المساعدة وشكرا سلفا لكل الاخوان
أستودعكم الله الذي لا تضيع ودائعه أرجو ان تجدوا بمشاركاتي ما يجعلكم تدعون لي بخير ان تحتم غيابي.
الرد }}}}
تم الشكر بواسطة:
#3
سعود كتب :طيب اخواني سؤال آخر كيف اخرج العضو من ضمن المتواجدين الان؟ لاني اضيفه عن طريق تعديل عمود Online=1 عند تسجيل الدخول وعند الخروج اغيرها الى 0 لكن لو لم يسجل خروج ستظل القيمة ثابتة بالقاعدة كيف اعالج الامر؟؟
اخواني انا ابرمج منتدى افضل من اللي انا سويتهم من قبل فارجو المساعدة وشكرا سلفا لكل الاخوان

الطريقة هي أنك تضع حقل في معلوماته الشخصية يكون من نوع Datatime
وفي كل مرة يقوم المتصفح بعمل للصفحة request أو Postback قم بتحديث هذا الحقل للمستخدم عن طريق الدالة في نفس قواعد البيانات GETDATE

بعد هذه الخطوة نأتي للخطوة التالية : وهي كيف أعرف إن هذا الشخص غادر الموقع أم لا !!؟
نقوم بعمل حسبة بسيطه على كل الآشخاص الذين موجودين online ونقارن تاريخ الحقل الذي عملناه سابقا هل تجاوز مثلا 5 دقائق !! فلو تجاوز نضع في خانة حقل online قيمة false .

كيف نقوم بخطوة الفحص على حالة الموجودين !!!!؟؟
اللي في بالي الان طريقتين :
الطريقة الأولى :
عن طريق Job الموجود في Agent الموجود في SqlServer Managment
بحيث تقوم بعمل job يقوم بفحص الحالات ( كل مثلا دقيقة واحدة ) اللي في حقل online مساوي ل true ويقارن الحقل اللي انشأناه من نوع DateTime ونقارن قيمته !! هل هو أكبر من 5 دقائق !! فلو كان نقوم بتعديل حقل online إلى false

المشكلة في الطريقة هو أن Agent لن يكون لديك صلاحية عليه إلا إذا كنت ادمن على SqlServer Managment .



الطريقة الثانية :
وهي أن تقوم بعملية فحص للحالات في كل عملية Postback لأي صفحة .

وبالتوفيق ...
الرد }}}}
تم الشكر بواسطة:
#4
واجهتني نفس المشكلة و حللتها بفضل الله ..
الفكرة هي ان تقوم بصنع تايمر في Global.asax .. و تايمر عند المستخدم .. التايمر الموجود عند المستخدم يقوم بالتاكيد على ان المستخدم موجود بصورة مستمرة .. اما التايمر الموجود في Global.asax فيقوم بحذف جميع من في قائمة onlines .. عند كل دقيقة مثلا .. و هكذا سوف تستطيع فعل ذلك
انظر هذه المشاركة :
http://vb4arb.com/vb/showthread.php?2949...1#post8148
الشمس اجمل في بلادي من سواها .. و الظلام
حتى الظلام هناك اجمل فهو يحتضن العـــراق :o
الرد }}}}
تم الشكر بواسطة:
#5
بارك الله فيكم اخواني.
بالنسبة للاخ الفاضل [b]macary007 طريقتك احترافية و متقدمة قد احتاج لها قريبا لاني استخدم استضافة مجانية قد لا تتوفر لدي الوصول الكامل.
----------------------------------------------------------
بالنسبة للاخ الفاضل
[/b][b]H111er
قمت بتحويل الكود الذي كتبت الى فيجوال بيسك عبر موقع:
[/b]http://converter.telerik.com/
واصبح كالتالي:
كود :
Private Sub Timer_Tick(sender As Object, e As System.Timers.ElapsedEventArgs)    Application("onlines") = ""
End Sub


Private Sub Application_Start(sender As Object, e As EventArgs)
    ' Code that runs on application startup
    Application("onlines") = ""
    Dim Timer As New System.Timers.Timer()
    Timer.Interval = 60000
    Timer.Elapsed += New System.Timers.ElapsedEventHandler(Timer_Tick)
    Timer.Enabled = True
    Timer.Start()
End Sub
لكن كيف اجمع بين هذا المتغير
كود :
Application("onlines") = ""
وين متغير تحمله الجلسة وهي مثلا
كود :
session("tname")
والذي اخزنه حال تسجيل الدخول
أستودعكم الله الذي لا تضيع ودائعه أرجو ان تجدوا بمشاركاتي ما يجعلكم تدعون لي بخير ان تحتم غيابي.
الرد }}}}
تم الشكر بواسطة:
#6
سعود كتب :بارك الله فيكم اخواني.
بالنسبة للاخ الفاضل [b]macary007 طريقتك احترافية و متقدمة قد احتاج لها قريبا لاني استخدم استضافة مجانية قد لا تتوفر لدي الوصول الكامل.
----------------------------------------------------------
بالنسبة للاخ الفاضل
[/b][b]H111er
قمت بتحويل الكود الذي كتبت الى فيجوال بيسك عبر موقع:
[/b]http://converter.telerik.com/
واصبح كالتالي:
كود :
Private Sub Timer_Tick(sender As Object, e As System.Timers.ElapsedEventArgs)    Application("onlines") = ""
End Sub


Private Sub Application_Start(sender As Object, e As EventArgs)
    ' Code that runs on application startup
    Application("onlines") = ""
    Dim Timer As New System.Timers.Timer()
    Timer.Interval = 60000
    Timer.Elapsed += New System.Timers.ElapsedEventHandler(Timer_Tick)
    Timer.Enabled = True
    Timer.Start()
End Sub
لكن كيف اجمع بين هذا المتغير
كود :
Application("onlines") = ""
وين متغير تحمله الجلسة وهي مثلا
كود :
session("tname")
والذي اخزنه حال تسجيل الدخول
بالنسبة للكود الذي كتبته حضرتك فلن يعمل .. حتما سوف تحتاج الى السي شارب الا اذا وجدت حل .. عموما لا تقلق فالسي شارب قريبا جدا من الفيجوال بيسك ..
بالنسبة لسؤالك يوجد حل باستخدام الـ Split .. و تعامل دقيق مع النصوص .. باذن الله سوف اضع مثال بسيط في قسم المقالات .. و بالتوفيق !
الشمس اجمل في بلادي من سواها .. و الظلام
حتى الظلام هناك اجمل فهو يحتضن العـــراق :o
الرد }}}}
تم الشكر بواسطة:
#7
خلاص انا غيرت الطريقة الى تخزين المسجلين الى مصفوفة ثم طباعتهم في الرئيسية

http://im30.gulfup.com/p6Zu1.jpg
أستودعكم الله الذي لا تضيع ودائعه أرجو ان تجدوا بمشاركاتي ما يجعلكم تدعون لي بخير ان تحتم غيابي.
الرد }}}}
تم الشكر بواسطة:
#8
أستودعكم الله الذي لا تضيع ودائعه أرجو ان تجدوا بمشاركاتي ما يجعلكم تدعون لي بخير ان تحتم غيابي.
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف نستخدم parameters لعرض البيانات سعود 2 359 20-11-12, 03:36 PM
آخر رد: Mr. DotNet

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم