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

كيف اعرض اسماء المستخدمين الحاليين؟

مغلق
بدأه rania_exe في 30 أبريل 2005 · 13 رد · 1,287 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف اعرض اسماء المستخدمين الحاليين؟

سبحان الله وبحمده سبحان الله العظيم

#2

ما المقصود بالمستخدمين هنا ؟

لا اظن أنهم مستخدمي قاعدة البيانات بما أننا في قسم ال asp.net

أما إذا كنت تتكلم عن مستخدمي الموقع المسجلين لديك ، فهذا يتوقف على قاعدة البيانات لديك ، وتسجيل عملية الدخول للموقع ، فيمكنك عمل حقل في جدول المستخدمين اسمه مثلاً IsActive وعند تسجيل الدخول يتم وضع القيمة 1 مثلاً وعند الخروج يتم وضع القيمة 0 وبعبارة sql بسيطة يمكنك معرفة من هم المتواجدين حالياً وأسمائهم

هذه فكرة بسيطة وبالتأكيد هناك غيرها

#3

الطريقة التى ذكرها أخي محمد هي الطريقة المفضلة، بالنسبة لي

إستخدمي حدث Session_Start وSession_End من اجل تحديث المتسخدمين المتواجدين

وتذكري ان القيمة الافتراضية لل Session هي 20 دقيقة، ويمكن تغيرها من خلال web.config

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#4

طيب اذا لم يكونو مسجلين

او لم يكن تسجيل دخول لدي بالموقع

كيف اعرف عدد الزوار الحاليين للموقع؟

abo_alzobaer@hotmail.com

#5
mgazif كتب:
طيب اذا لم يكونو مسجلين

او لم يكن تسجيل دخول لدي بالموقع

كيف اعرف عدد الزوار الحاليين للموقع؟

use application variable

#7

بسيطة جدا ..

في صفحات الموقع قم بإستدعاء دالة وظيفتها إنشاء Session إن لم يكن موجودا للزائر و لتعطه القيمة true or false كالتالي:

                     private bool IsVisited()
  {
 	 if(this.Session["isVisited"]==null)
 	 {
    this.Session["isVisited"]=true;
    return true;
 	 }
 	 else
 	 {
    return false;
 	 }
  }
	private void Page_Load(object sender, System.EventArgs e)
  {
 	 this.IsVisited();
 	 Response.Write(this.Session["isVisited"].ToString());
  }

ستلاحظ أنه تم إستدعاء الدالة التي أنشأت ال Session أما في حال كون ال Session قم تم إنشاؤه فلن يتم إنشاء Session جديد و في ملف ال Global.asax تقوم بتحديد ال TimeOut او من خلال ال Web.Config

عدد الزوار الحاليين تعرفه من خلال عرض محتوى نسخة ال Application كالتالي :

 Response.Write(this.Application["hits"].ToString());

حظا موفقا..

You can fly while you can touch the sky

#8

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

في البداية اقول اشتقت لك اخي الحبيب محمد ابو صلاح

واشتقت لان انهل من علمك ارجو ان يكون العمل الجديد ممتاز ووفقك الله لما يحب ويرضى

وارى ان الاخ الحبيب محمدالنجراوي هنا فاستغل الوضع وا ضع سوألي

يعني الحبايب كلهم هنا

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

واضع فيه القيمة online عندما يعمل المشترك login واعمل تحديث لتصبح offline عندما يعمل logout

لكن المشكلة عندي هي ماذا لولم يقم المشترك بعمل logout واغلق الصفحة مباشرة ستبقى القيمة online

فاقترح علي احد الاخوان جزاه الله خير شفاه الله انا اكتب في session_end الكود التالي

If Session("ID") <> "" Then
            Application.Lock()
         
            Dim insert3 As String
            insert3 = "update [Users] set [status]='OffLine' where User_Name=N'" & Me.Session("ID") & "' "
            Dim cmd3 As New SqlCommand(insert3, cn)
            cn.Open()
            cmd3.ExecuteNonQuery()
            cn.Close()
            Application.UnLock()
        End If

لكن المشكلة ان البرنامج لايمر على هذا الكود اصلا ولا يراه ابدا فاين المشكلة وما الحل

ساعدونا بارك الله فيكم

تم تعديل هذه المشاركة بواسطة ابو السموأل في 12 مايو 2005 في 01:46

#9

السلام عليكم ..

أهلا بك أخي أبو السمؤأل ..

أنت أين وضعت الكود السابق؟

أعتقد أن الزائر عندما يغلق المتصفح سوف تنتهي الجلسة و بالتالي يجب أن تركز على الحدث Session_End و لكن لنفرض أن الجلسة فعليا لا تنتهي عند إغلاق المتصفح سوف يسأل أحدهم لماذا إذا عندما نعود لفتح التطبيق نراها قد اختفت ؟

طبعا لأنها مرتبطة بنسخة المتصفح التي استعرضنا منها و كان لها SessionID خاص ..

لذا لا تنسى وضع Session.TimeOut

حقيقة أنا لم أجربها حتى الان و لكن هذا هو تفسيري لها :)

You can fly while you can touch the sky

#10

السلام عليكم ورحمة الله وبركاته

اخي الحبيب ان فعلا واضع الكود في Session_End وقد ذكرت ذلك بس انت لسى مش شارب قهوتك :D

وانا فعلا وضعت Session.TimeOut=1

في Session_start

لكن هناك شغلة لم انتبه عليها قال لي احد الشباب ان انتظر دقيقة بعد اغلاق المتصفح عشان يصير time out

بعدها اشيك على الحقل status وسيكون offline ان شاء الله

فما رايكم دام فضلكم

انا ايضا ساجرب واضع النتيجة

#11

طيب

الله يوفقكم

#12

السلام عليكم

اقتباس
لكن هناك شغلة لم انتبه عليها قال لي احد الشباب ان انتظر دقيقة بعد اغلاق المتصفح عشان يصير time out

بعدها اشيك على الحقل status وسيكون offline ان شاء الله

يظهر إن الاخ كان نايم وقتها ، أنا ركزت في الكلام ولقيت إنه غير منطقي ، لأن السيشن فعلاً سوف ينتهي ولكن البرنامج سيكون قد انتهى قبله ، فكيف سيتم الكتابة إلى قواعد البيانات ، وطبعاً لا يظن أحد أن نسخة أخرى مفتوحة من البرنامج بواسطة مستخدم آخر في مكان آخر ستقوم بالمهمة

يا ريت تقول للأخ يفوق قبل ما يتكلم :)

أظن أنه هناك حل آخر ، وهو أن نضع نسخة أخرى من الكود المذكور عند حدث إنتهاء البرنامج يعني داخل الـ Application_End

أظن هكذا ممكن يكون حل

وفقك الله للخير

#13

للاسف ما زبطت اخي الحبيب تبقى online

تم تعديل هذه المشاركة بواسطة ابو السموأل في 19 مايو 2005 في 10:42

#14

يا اخوان البرنامج لا يمر على الحدث Application_End هل هذا bug اما ان المشكلة عندي فقط

هل جرب احدكم الكتابة في هذا الحدث واشتغل معو

:(

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

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