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

amirepsilon

Active Member
سلام
دوستان وقتی یک کاربر وارد سایت میشه سشن ساخته میشه و user_online مساوی 1 میشه
حالا مشه یه کاری کرد که اگر کاربر logout نکنه و فقط از پای کامپیوتر بلند بشه (در نتیجه سشن اون پاک میشه) آنوقت user_online اون 0 بشه ؟
راه بهتری هست ؟
ممنون
 

phpweb

Active Member
باید از آژاکس استفاده کنی و یه زمان مشخص کنی که اگه توی این زمان کاربر کاری نکنه، اطلاعات دیتابیس تغییر کنه.
 

Masoud1365

مدیر انجمن
زمانی که سشن آیی دی وجود نداشته باشه یعنی این که سشن پاک شده ( یا کاربر بدون لاگ اوت سایت رو بسته یا ... ) ! اینجوری میشه فهمید !
 

Domanjiri

Well-Known Member
سلام

یه روش اینه:

داخل دیتابیس، توی همون جدولی که مثلن فیلد status داریم، یه فیلد به اسم last_activity از نوع زمان درست می کنیم و هر بار که کاربر فعالیتی انجام داد مقدار اونو برابر () NOW قرار میدیم.
بعد توی هر جایی که با این جدول قراره پرس و جو داشته باشیم، چک می کنیم سطر هایی که مقدار فیلد last_activity شون(مثلن) 1 ساعت قبل هست، status ِشون رو برابر 0 قرار میدیم (یعنی آفلاین!).

یه راه دیگه اینه که تایمر جاوااسکریپت، مرورگر رو بعد از n دقیقه ببره به صفحه خروج:
PHP:
setTimeout("document.location='../logout.php'", 50000);
البته اینجا باید از clearTimeout هم استفاده کنی، که اگه کاربر داره توی صفحه فعالیت می کنه تایمر خاموش باشه [ بخش جاوااسکریپت انجمن جون میده واسه این سواال!:green:]

میشه هر دو راه رو باهم پیاده کرد که خیلی هم خوبه!

موفق باشی
 

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

بالا