PDA

View Full Version : نحوه نمایش کاربر انلاین



Master_Power
جمعه 26 تیر 1394, 15:49 عصر
سلام

چطوری میشه توی مدیریت سایت یه قسمت بزارم که کاربرانی که تو اکانتشون آنلاین هستن را نشون بده ؟

آیا باید یه فیلد به بانک اطلاعاتی تو قسمت کاربران اضافه کنم ؟

amg_123
شنبه 27 تیر 1394, 16:16 عصر
سلام عرض شد.
شما باید یه فیلد به جدول اضافه کنید(هر جدولی که خواستید)، کاربر که لاگین میشه و هر عملیاته دیگه ای که انجام میده(Select, Insert, Delete, Update) این فیلد رو مقدارش رو زمان فعلی + مثلا 60 ثانیه می کنید. و این جوری تایم اونایی که از تایم فعلی بزرگتر هستند نشانه آنلاین بودنشونه. این زیاد دقیق نیست ولی بدک نیست.
واسه اینکه دقیق تر بشه میشه با استفاده از تایمر جاوا اسکریپت هر مدت مشخص این فیلده رو تایمشو بروز کرد اینجوری دیگه واقعا دقیق میشه ولی واسه سایتایی که تراقیک زیادی دارن زیاد به صرفه نیست. مثلا هر نیم دیقه یکبار یه در خواست میدیم که تایم آنلاین بودن به روز بشه timestamp + 30
واسه گرفتنشم


SELECT * FROM users WHERE online_time > time()

Master_Power
شنبه 27 تیر 1394, 17:24 عصر
میشه یکم دقیقتر توضیح بدید ؟

میشه کاری کرد که با session بشه فهمید آنلایه یا نه ؟

Unique
شنبه 27 تیر 1394, 21:53 عصر
کلا بستگی به این داره که شما پروسه login را چطور طراحی میکنید اما عموما بهترین راه این هست که شما کاربران آنلاین را توی یک جدول اطلاعات شون را نگه دارین و آخرین بازدید کاربر را هم بر اساس یک فیلد زمان ثبت کنین.

حالا اگه یک select count بگیرین از اون جدول کاربران آنلاین تعدادشون مشخصه و حتی میتونید نام کاربری و هر چیزی میخواین را بدست بیارین.
تنها موردی که باید رعایت کنید اینه که کاربرانی که از آخرین بازدیدشون بیش از session timeout شما (پیش فرض ۳۰ دقیقه هستش) گذشته را از جدول حذف کنید.