پیدا کاردن کاربرانی آنلاین بر روی سایت

www.nero.ir

Member
سلام دوستان من رووی یک سایتی که دارم می نویسم یک عضویت و یک لوگین دارم . می خوام یک چیزی مثل همین فروم مجید آنلاین که پایین نشون میده کدوم کاربر روی سایت هستن براش بزارم ولی نمیدونم چطور باید بفهم که کدوم session ها روی سایت هستن.

لطفا من رو راهنمایی کنید
 

ziXet

مدیر انجمن PHP/MYSQL
فکر کنم باید سشن ها رو رو دیتابیس مدیریت کنی تا راحت بتونی گیر بیاری!

حداقل باید کاربرایی که آنلاین هستن رو تو دیتابیس ذخیره کنی
 

amir01

Well-Known Member
راحت ترین راهش به نظر من اینه که تو تیبل یوزرها یه فیلد به اسم online بذاری و وقتی کاربر لوگین میکنه مثلا توش 1 بریزی و وقتی میره بیرون 0 بعد بقیه ماجرا ...
 

foranyone

Well-Known Member
راحت ترین راهش به نظر من اینه که تو تیبل یوزرها یه فیلد به اسم online بذاری و وقتی کاربر لوگین میکنه مثلا توش 1 بریزی و وقتی میره بیرون 0 بعد بقیه ماجرا ...


اگه کاربر رو خروج کلیک نکنه میشه اون یک رو بازم صفر کرد؟
 

parsiteam

Member
یک فیلد دیگه هم بزار بنام time . زمان ورود کاربر رو هم بریز توش . بعد با هر بار لود شدن سایتت چک کن که اگر اختلاف زمان حال با فیلد هر کاربر مثلا 5 دقیقه بیشتر بود فیلد online رو به صفر تغییر بده . البته باید وقتی کاربر لوگین میکنه هر صفحه ای رو که باز میکنه زمان فیلد ورودی رو همش با زمان جدید تطیبیق بدی .
 

foranyone

Well-Known Member
بعد با هر بار لود شدن سایتت چک کن که اگر اختلاف زمان حال با فیلد هر کاربر مثلا 5 دقیقه بیشتر بود فیلد online رو به صفر تغییر بده . البته باید وقتی کاربر لوگین میکنه هر صفحه ای رو که باز میکنه زمان فیلد ورودی رو همش با زمان جدید تطیبیق بدی

اصلا روش خوبی نیست به نظر من البته:wink:

کاربر بیچاره رو اینجوری بعد هر 5 دقیق idle موندن میندازین بیرون در حالی که آنلاین تشریف داره!

میدونیین اگه تعداد کاربران سایت زیاد باشه چه ترافیک هولناکی تو سرور بدبخت ایجاد میشه!
 

parsiteam

Member
اصلا روش خوبی نیست به نظر من البته:wink:

کاربر بیچاره رو اینجوری بعد هر 5 دقیق idle موندن میندازین بیرون در حالی که آنلاین تشریف داره!

میدونیین اگه تعداد کاربران سایت زیاد باشه چه ترافیک هولناکی تو سرور بدبخت ایجاد میشه!
حرف ترافیکتو قبول دارم . ولی خب راه حل بهتری سراغ داری ؟ درضمن خب زمان رو میکنیم 10 دقیقه . بعدشن کاربری که 10 دقیقه بدون فعالیت باشه یعنی حضور نداره دیگه . :d
 

MDP

Well-Known Member
والا ما توی ASP.Net متغیری داریم به اسم Application که برای تمام کاربران ثابته.

مثل Session می مونه ولی برای هر کاربر فرق می کنه.

ما اونو هر بار که کاربر جدید میاد یکی زیاد می کنیم و هروقتی هم که سیشن از بین بره یکی کم می کنیم.

ببینید توی PHP هم چین چیزی هست!
 

foranyone

Well-Known Member
درضمن خب زمان رو میکنیم 10 دقیقه . بعدشن کاربری که 10 دقیقه بدون فعالیت باشه یعنی حضور نداره دیگه . :d

به نظر من بازم کدت فقط تو حالات خاص جواب میده (کد خوب باید همیشه درست جواب بده)

تو روش شما ، هربار که سایت لود میشه اول همه ی کاربرانی که فیلد آنلاین براشون یک هست باید Select شن

بعد زمان ها با زمان فعلی مقایسه شن ، بعد کلی عمل update به صفر صورت بگیره !! و ....

هر کاربر جدیدی که میاد سایت کل این کارا بازم انجام میشه و یعنی اگه 100 تا کاربر با اختلاف صدم ثانبه بیان که وا ویلا!!!

کار سایت میشه تحلیل آنلاین ها و کاربران و به کارای دیگش نمیرسه:D

من فعلا در مورد روش بهتر نظری ندارم ولی به هیچ وجه روش بالا خوب نیست!
 

ziXet

مدیر انجمن PHP/MYSQL
اصلا روش خوبی نیست به نظر من البته:wink:

کاربر بیچاره رو اینجوری بعد هر 5 دقیق idle موندن میندازین بیرون در حالی که آنلاین تشریف داره!

میدونیین اگه تعداد کاربران سایت زیاد باشه چه ترافیک هولناکی تو سرور بدبخت ایجاد میشه!
همه سیستم های بولتین برد از این روش استفاده میکنند.
این کارا به سرور قشار نمیاره!
چون کوئری سنگین نیست
 

foranyone

Well-Known Member
همه سیستم های بولتین برد از این روش استفاده میکنند.
این کارا به سرور قشار نمیاره!
چون کوئری سنگین نیست
__________________

میشه توضیح بدبن چطور میشه کاربران مهمان رو تشخیص داد؟
 

www.nero.ir

Member
ممنون دوستان عزیز از جواب هاتون

راهی که parsiteam گفتند عملی هستش ولی فکر مکی کنم سیو کردن سشن در دیتابس بهتر باشه چون جایی خوندم که از لحاظ امنیتی هم بهتر هستش . و میشه وضیعت سشن کاربر رو از بانک چک کرد به راحتی . کسی تا حالا این کار رو انجام داده ؟ اطلاعاتی داره ؟
 

parsiteam

Member
منظورت از ذخیره کردن سژن چیشه ؟ آیدی سژن ؟ بعد خود چطوری میخوای بفهمی که سژن تموم شده ؟
 

alilahoori

Member
سلام.
منم روش فعلی رو قبول دارم. با اینکه به نظر میاد راه های بهتری هم وجود داره ولی این روش در حال حاضر وجود داره. پس بهتره درباره چیزی که وجود داره صحبت کنیم ;)
منتظر پیدا کردن روش های بهتر هم هستیم.....
در ضمن، سرور باید خیلی ضعیف باشه که روی این کوئری های سبک هرچقدر هم تعدادش زیاد باشه، ضعیف عمل کنه.
 

جدیدترین ارسال ها

بالا