مشكور جدا اخي .. عندي سؤال اخر .. انا رايت مرة من المرات مشروع لك و كان منتدى .. فهل وضعت فيه خاصية معرفة الاعضاء الاونلاين ؟ و اذا وضعتها كيف وضعتها ؟
الشمس اجمل في بلادي من سواها .. و الظلام
حتى الظلام هناك اجمل فهو يحتضن العـــراق :o
لم اعرف لها كنت اتمنى اضافتها لكن لم اوفق. هناك ثلاثة امور لو افكر ان ابدا من جديد ببرمجة منتدى ستكون محسنة ومعدلة او جديدة وهي:
معرفة عدد الزوار والاعضاء وهذا عن طريق ملف asax وكتابة اسمائهم في مكان ما في الواجهة الرئيسية.
تصفح البيانات ولك الفضل بعد الله في معرفة الطريقة الصحيحة( ولا انسى الاخ طارق فقد بذل مجهودا لا ينسى لايضاح الفكرة).
استخدام البارامترات للاضافة او الحذف او التعديل وكافة الاستعلامات.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
اخوتي الاعزاء ..
ان غايتي من هذا الموضوع هو معرفة من اونلاين و من اوفلاين ..
فمثلا .. هذا المنتدى يستطيع معرفة من اونلاين و من اوفلاين ..
لكن كيف سوف استطيعها فعلها في الاي اس بي ؟ .. قبل مدة توصلت بفضل الله الى حل المشكلة نظريا .. و هي ان يكون لي مجلد في السيرفر اسمه onlines .. و يوجد بيج .. و كل مستخدم له اسم خاص في هذا البيج .. و يوجد في البيج تايمر .. يقوم هذا التايمر بالتاكيد بان اسم المستخدم موجود في المجلد بصورة مستمرة .. و هكذا سنعرف من اونلاين .. لكن اذا قام احد الاشخاص بالخروج ؟ .. سوف يبقى اسمه و لن يحذف .. اي اننا ما استفادينا شي .. لذلك يجب وضع تايمر اخر يقوم عند كل فترة بمسح الفايلات في المجلد ... و المستخدم الذي يكون اونلاين بالطبع سوف يؤكد بانه اونلاين .. الفكرة بسيطة .. لكن التايمر الثاني الذي يقوم بالحذف كل مدة .. اذا كان عند كل مستخدم هذا التايمر .. فسوف يقوم بالحذف بصورة مستمرة لان لامستخدمين قد يدخلون الموقع باوقات متفاوتة ! .. و هذا سيؤدي بالطبع الى فشل الفكرة بصورة تامة ...
لذلك يجب ان يوجد تايمر واحد يقوم بهذه المهمة .. و الحل الوحيد بالطبع هو استخدام تقنية asax
و بفضل الله تمكنت من صنع تايمر في ملف Global.asax .. لكن لم استطع ان استخدم الفيجوال بيسك بل استخدمت السي شارب ..
حيث اسخدمته بهذه الطريقة :
اخي الكريم .. مو شايف انك معقد الامور شوي .. تايمر يعني وقت و حمل زائد على الموقع .. في نفس المثال المرفق يمكنك عمل ذلك بدون تايمر .. فقط اضف اسم المستخدم عند بدء السيشن و امسحه عند انتهاء السيشن ... وحليت مشكلتك .. وبالنسبة للتوقيت بتقدر تتحكم فيه من خلال الـ Sessionstate
Everyone is a genius. It's just that some people are too stupidto realize it
اخي الفاضل [b]Mr. DotNet[/b]
هل يمكن ضمن ملف قلوبال استعلم عن حالة الجلسة واقارنها بقاعدة بيانات ثم اضيف الاسم للمتواجدين الان؟
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
اخي سعود لم افهم عليك جيداً .. اذا كان سؤالك استعلام من قاعدة بيانات اعتقد تقدر تعمل Sub وتعمل فيه عملية استعلام للبيانات .. وتنادي الـ Sub من حدث بداية الجلسة
Everyone is a genius. It's just that some people are too stupidto realize it
اخواني الاعزاء ,بعد هذه المناقشة الدامية :o والطويلة ساشرح الفكرة والحل ,
اولا الاخ سعود يريد اظهار المستخدمين الموجودين حاليا (الاعظاء ) مثل المنتدى في الفوتر موجود الاعظاء والزوار واسماء الاعظاء ,
وفكرته هي انك ستحتاج الى استعمال (Roles) و (membership) والكلاس (member ship) يمتلك خواص عديدة يمكن الاستفاده منها وهي :
Comment :ربط تعليق مع اليوزر
CreationDate :تاريخ انشاء اليوزر
Email كاسترجاع او ضبط الايميل لليوزر
IsApproved : لتفعيل او ضبط مصادقة اليوزر للتفعيل
Islookedout :حجب اليوزر .
Isonline :لمعرفة هل اليوزر اونلاين
LastActivityDate :اخر تاريخ لفعاليات اليوزر ويتغير اوتوماتيكيا عند استخدام (CreateUser,ValidateUser,GetUsers )
LastLookoutDate :التاريخ الاخير لتسجيل الخروج
LastLoginDate :اخر تاريخ لتسجيل الدخولز
LastPasswordChangeDate :اخر تاريخ تغيير كلمة السر
PasswordQuestion :الحصول على سؤال كلمة السر
ProviderName :اسم الميمبرشيب لليوزر
Provide User key : استرجاع مفتاح فريد لكل يوزر ,في حالة استخدام مزودات السيكول سيرفر فان هذا القيمة تمثل (Guid )الحقل.
UserName :استرجاع اسم لليوزر
بينما الميثود التي يدعمها MembershipUser :
ChangePassword : تغيير كلمة السر لليوزر
Change Password Questionand Answer : تغيير سؤوال وجواب كلمة السر
GetPassword : استرجاع كلمة السر
ResetPassword :مسح كلمة السر وانشاء كلمة سر عشوائية .
UnlookUser : الغاء حجب اليوزر المحجوب.
الخواص اعلاه يمكن الاستفاده منها في الفكرة اعلاه .
بينما الكلاس (Roles ) يملك :
AddUserToRole : اضافة يوزر الى رول\
AddUsersToRole : اضافة مجموعة من اليوزرية الى الرول
AdduserstoRoles اضافة مجموعة من اليوزرية الى مجموعة من الرولز
AddUserToRoles :اضافة يوزر واحد الىمجموعة من الرولز
CreateRole : انشاء ول جديدة
Delete Role : حذف رولز
Delete Cookie :حذف الكوكيز من اليوزر
Find UsersInrole : البحث عن يوزر في رولز
GetAllRoles: استرجاع جميع الرولز
GetRoles for User :استرجاع الرولز ليوزر معين
IsUserInrole :هل اليوزر في الرولز المعينة
Remove UserFrom Role :حذف يوزر من الرول
Remove User From Roles :حذف يوزر من مجموعة رولز
Remove Users From Role :حذف مجموعة يوزر من رول معينه
Remove Users From Roles كحذف مجموعة معينة من اليوزرس من مجموعة معينة من الرولز