PDA

View Full Version : سوال: چرا آنلاین بودن کاربر رو نمایش نمی ده؟



ABZiko
شنبه 08 فروردین 1394, 15:19 عصر
سلام، آقا من می خوام بگم اگر کاربران عضو سایت ، هم اکنون session شون فعال هست، جلوش اسمشون یک علامت نشون بده، ولی همه کاربر ها رو غیر فعال نمایش می ده، در صورتی که باید یکیشون که خودم هستم رو آنلانینشون بده ...
این هم کد :


<?php

require_once('User.php');
$obj=new User();
$user=$obj->getUsers();

foreach($user as $users) {

?>

<li>
<img style="margin-top: 10px" src="Uploads/<?php echo $users['avatar']; ?>" width="50px" height="50px" style="border-radius: 5px" />
<span style="margin: 10px 0px 0px 10px">
<?php echo $users['nickName']; ?>
<?php
if(isset($_SESSION)){
echo "<img src='Images/Online.png' />";
}
else{
echo "<img src='Images/Offline.png' />";
}
?>
</span>
</li>

<?php

}

?>

محسن شامحمدی
یک شنبه 09 فروردین 1394, 08:50 صبح
وقتی شما $_SESSION رو استفاده می کنی.یعنی سشن خودت(همون مرورگری که باهاش داری صفحه رو می بینی)

Because of the nature of the web, you can't know when a user disconnects, yanks the cable or shuts down his computer without politely telling you.

you just need to save the last activitity time. When displaying the user status, if last activity time is less than now+15 minutes then user is online, offline otherwise

آنلاین بودن بودن کاربر از سه طریق قابل شناساییه:
1- ذخیره timestamp آخرین فعالیت کاربر توی سایت.و چک می کنی اگر آخرین فعالیتش از 10 دقیقه قبل گذشته بود.کاربر آفلاینه
2- کاربر با کلاس session (http://php.net/manual/en/function.session-set-save-handler.php) برای اینکه از سشن calllback بگیری مسقیما و روی جدول آخرین فعالیت اعمال کنی
3- استفاده از این تابع (http://php.net/manual/en/function.session-set-save-handler.php#96305)

http://tinyurl.com/q8hyfro

ali.webdesign
یک شنبه 09 فروردین 1394, 10:38 صبح
شما باید کاربرهای انلاین تون رو در یه جدول ذخیره کنید و به این شیوه آنلاین بودن یا آفلاین بودن کاربر رو تشخیص بدید

ABZiko
یک شنبه 09 فروردین 1394, 13:04 عصر
وقتی شما $_SESSION رو استفاده می کنی.یعنی سشن خودت(همون مرورگری که باهاش داری صفحه رو می بینی)



آنلاین بودن بودن کاربر از سه طریق قابل شناساییه:
1- ذخیره timestamp آخرین فعالیت کاربر توی سایت.و چک می کنی اگر آخرین فعالیتش از 10 دقیقه قبل گذشته بود.کاربر آفلاینه
2- کاربر با کلاس session (http://php.net/manual/en/function.session-set-save-handler.php) برای اینکه از سشن calllback بگیری مسقیما و روی جدول آخرین فعالیت اعمال کنی
3- استفاده از این تابع (http://php.net/manual/en/function.session-set-save-handler.php#96305)

http://tinyurl.com/q8hyfro

ممنونم دوست عزیز ...کدوم یک از این روش ها بهتره؟
ممنون

ABZiko
یک شنبه 09 فروردین 1394, 13:07 عصر
شما باید کاربرهای انلاین تون رو در یه جدول ذخیره کنید و به این شیوه آنلاین بودن یا آفلاین بودن کاربر رو تشخیص بدید

من کاربرام رو توی یک جدول ذخیره کردم، می شه بگید چطوری می شه وقتی کاربر آنلاین شد توی یک جدول دیگه ذخیرش کنم؟
نمی شه توی همون جدول کاربر ها، یک فیلد ایجاد کنم، اگر کاربر آنلاین بود، عدد 1 و در غیر این صورت عدد 0 رو بزاره؟

ABZiko
یک شنبه 09 فروردین 1394, 13:12 عصر
یک سوال، من اومدم توی جدول کاربران، از تابع time برای زمان استفاده کردم، به نظرتون خوبه؟

Pedram77
یک شنبه 09 فروردین 1394, 14:15 عصر
سلام یه نمونه چک کردن آنلاین/آفلاین نوشتم که با هر تعداد کاربر به درستی جواب میده. البته با Session نیست با دیتابیسه که بنظر من امن تره :چشمک:
یه فایل SQL داره که دیتابیس مربوط بهشو (dbOnline) میسازی و تو قسمت SQL برنامه PHPmyAdmin کد های توی اون فایلو کپی میکنید.
من اجرا کردم مشکلی نداشت.
یا علی

ABZiko
یک شنبه 09 فروردین 1394, 14:51 عصر
ممنون، خیلی عالی بود ...

ali.webdesign
یک شنبه 09 فروردین 1394, 18:27 عصر
من کاربرام رو توی یک جدول ذخیره کردم، می شه بگید چطوری می شه وقتی کاربر آنلاین شد توی یک جدول دیگه ذخیرش کنم؟
نمی شه توی همون جدول کاربر ها، یک فیلد ایجاد کنم، اگر کاربر آنلاین بود، عدد 1 و در غیر این صورت عدد 0 رو بزاره؟

این روش هم خوبه ولی اگه کاربر مرورگر رو ببنده باز هم آنلاینه

اینجا روششو گفتم


http://barnamenevis.org/showthread.php?489872-%DA%A9%D9%85%DA%A9-%D8%AF%D8%B1-%D9%86%D9%88%D8%B4%D8%AA%D9%86-%DA%A9%D8%AF-%D8%A2%D9%85%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF-(%D8%A7%D8%B3%D8%AA%D8%A7%D8%AF%D9%85%D9%88%D9%86-%DA%AF%D9%81%D8%AA%D9%87-%D8%AE%D9%88%D8%AF%D8%AA%D9%88%D9%86-%D8%A8%D9%86%D9%88%DB%8C%D8%B3%DB%8C%D8%AF-%D8%AA%D8%A7-%D8%A8%D8%AA%D9%88%D9%86%DB%8C%D8%AF-%DA%A9%D8%AF%D8%A7%D8%B1%D9%88-%D8%AA%D9%88%D8%B6%DB%8C%D8%AD-%D8%A8%D8%AF%DB%8C%D8%AF)&p=2192369&viewfull=1#post2192369