mehdi... 240 ارسال شده در دی 92 گزارش بازنشر ارسال شده در دی 92 با سلام می خواستم هر کسی که لاگین کرد فیلد استاتوس تو جدول یوزر مثلا مقدار 1 بگیره بعد هر وقت نتش قطع شد یا صفحه را بست یا لاگ اون کرد این مقدار 0 بشه که نشون دهنده آفلاین بودنشهبا جاوا اسکریپت یه کد پیدا کردم ولی فکر نکنم جواب بده چون چک نمیشه که اون شخص هنوز آنلاین هست یا نهبه نظرم با پی اچ پی چک بشه بهترهبنظرتون چیکار کنم ؟ نقل قول لینک به ارسال
Parsa 23463 ارسال شده در دی 92 گزارش بازنشر ارسال شده در دی 92 روش تشخیص آنلاین بودن به این صورت هست:برای اولین بار لاگین مقداری را در کوکی ذخیره کنید که زمان لاگین باشدو زمان آخرین بازدید را در دیتابیس ذخیره کنیدبرای بروزرسانی زمان هر 2 دقیقه زمان دیتابیس را بروز کنیدبرای تداوم آنلاین بودن افرادی که صفحه رو رفرش نمیکنند یا بازدید میتوانید با ایجکس درخواست ارسال کنیدو کاربرانی که در 5 دقیقه گذشته زمان بازدید دارند را نمایش دهید(مقدار زمان فقط برای مثال بود) 6 نقل قول لینک به ارسال
Mobin 1669 ارسال شده در دی 92 گزارش بازنشر ارسال شده در دی 92 در تکمیل صحبتهای پارسای عزیزمعمولا روش دقیقی وجود نداره و همشون از روش دیتابیس استفاده میکننداگر هم بخواهید از jquery استفاده کنید سربار اضافی به سرور تحمیل میکنید و اینکه اگه ارتباط قطع بشه که دیگه ریکوئستی به سرور نمیره که شما به سرور بگید ارتباط قطع شدهیک جدول میسازید(user_info) با حداقل 3 فیلد 1.نام کاربری(user) -تاریخ جاری(date ) . زمان جاری(time)یک تابع در functions.php ایجاد میکنید که هر کاربر که لاگین هست چک میکنین ایا رکوردی با نام کاربر و تاریخ جاری وجود داره با نه$wpdb->get_var('select user from user_info where user='$current_user->user_login' and date=date(now())');اگه نبود یک رکورد insert میکنید براش$wpdb->query("insert into user_info(user,date,time)values('$current_user->user_login',date(now()),time(now))");اگه بوده فقط فیلد زمانش رو با زمان جاری update بروز رسانی میکنید$wpdb->query('update user_info set time=time(now()) where user='$current_user->user_login' and date=date(now())');حالا موقع نمایش یه سلکت میزنین که ایا کاربر فوق در 5 یا 10 دقیقه قبل بوده یا خیرtimetostr('-10 minutes') 7 نقل قول لینک به ارسال
mansour74 2 ارسال شده در دی 92 گزارش بازنشر ارسال شده در دی 92 (ویرایش شده) من هم همین کد رو به یک صورت دیگه نوشتم مشکل این چی هست ؟ <script>setInterval(function() { $(".listonline").load("lib/listonline.php");}, 1000);</script><script>window.onbeforeunload = function(){ $(".listonline").load("lib/changestatus.php"); alert("ok");}// ORwindow.addEventListener("beforeunload", function(e){ // Do something}, false);</script><script>window.onload = function(){ $(".listonline").load("lib/changestatuson.php"); alert("ok");}</script>listonline.php<?php$result=$sql->select("`id`, `list`","`addlist`","1");while($row=mysql_fetch_array($result)) { $list=$row['list']; $id=$row['id']; }$val=explode(",",$list);foreach($val as $val2){$result=$sql->select("`id`, `id2`","`user`","`status`=1 and `id`=".$val2);while($row=mysql_fetch_array($result)) { echo "<li onclick='alert(this.value)'><p>".$row['id2']."</p><span>I'm online 2013/28/12</span></li>"; }}?>changestatuson.php<?php$sql=new sql;$session=new session;?><?php$session->sstart();$session->add("user","system","");$curuser=$session->show('user');con();selectdb();$query="UPDATE `user` SET `status`=1 WHERE `id2`='$curuser'";mysql_query($query);$session->sreset();?>changestatus.php<?php$session->sstart();$session->add("user","system","");$curuser=$session->show('user');con();selectdb();$query="UPDATE `user` SET `status`=0 WHERE `id2`='$curuser'";mysql_query($query);$session->sreset();?> که البته کلاس و توابع خاص خودش رو نوشتم ویرایش شده دی 92 توسط NESTED 1 نقل قول لینک به ارسال
Parsa 23463 ارسال شده در دی 92 گزارش بازنشر ارسال شده در دی 92 کد رو باید خودتون تست کنیدنمونه الگوریتیمی گفته شد 3 نقل قول لینک به ارسال
mansour74 2 ارسال شده در دی 92 گزارش بازنشر ارسال شده در دی 92 کد رو باید خودتون تست کنیدنمونه الگوریتیمی گفته شدولی از من جواب میداد. 1 نقل قول لینک به ارسال
سعید حسینی 2409 ارسال شده در دی 92 گزارش بازنشر ارسال شده در دی 92 سلاماین نمونه هم مورد خوبیه: http://coursesweb.net/php-mysql/register-show-online-users-visitors_t 1 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .