PDA

View Full Version : مشکل در تولید آمارگیر با PHP



h.torabi
دوشنبه 23 دی 1392, 14:45 عصر
سلام به همه اساتید....

اگه بخوایم یه کد امار گیر درست کنیم ازکجا باید بفهمیم در چه زمانی کار بر خارج شده ....؟؟؟

برای نوشتن کد امار گیر باید این کد هارو در خود پیج سایت قبل از تگ <html> بنویسیم....

یا در جای دیگه.....

اگه میشه یکم توضیح بدبد...

SA_Developer
دوشنبه 23 دی 1392, 15:48 عصر
سلام
بیشتر امار گیرها اینطور کار میکنن:
Session کاربر فلعی رو همراه با زمان ورود در دیتابیس ذخیره میکنن(در صورتی که از قبل موجود نباشه).
بعد، در هر بارگذاری زمانهای ورود رو باز ما فعلی مقایسه میکنن اگر مثلا زمانهای بیشتر 15 دقیقه وجود داشت رکورد مربوطه رو پاک میکنن و این یعنی اون کاربر دیگه انلاین نیست، در غیر اینصورت زمان ورود کاربر رو اپدیت میکنن(زمان آخرین فعالیت).

به همین سادگی!
البته بعضی از امارگیرها هم بجای سشن از IP استفاده میکنن.

این هم یه آموزش (البته بی نقص هم نیست): http://www.phpeasystep.com/phptu/9.html

ravand
دوشنبه 23 دی 1392, 21:53 عصر
میشه هم سشن رو چک کرد و هم ip . برای اینکه کاربر وقتی پنجره رو بست رکورد داخل دیتابیس حذف بشه از متد unload() در جی کوئری استفاده کنید.

h.torabi
دوشنبه 23 دی 1392, 22:45 عصر
میشه با جاوا اسکریبت این کارو کرد..

فقط نمیدینم میشه جاوا رو با php ارتباط داد...؟؟؟>>>

ravand
سه شنبه 24 دی 1392, 08:29 صبح
اینظوزی منظورم بود:

<script src="jquery.min.js"></script>
<script>
$(window).unload(function() {

$.ajax({
async: false,
type: "GET",
url: 'http://localhost/Delete.php',
data: "id=" + "48",
success: function(data){
alert(data);
}
});
});
</script>

SA_Developer
سه شنبه 24 دی 1392, 11:20 صبح
اینظوزی منظورم بود:

<script src="jquery.min.js"></script>
<script>
$(window).unload(function() {

$.ajax({
async: false,
type: "GET",
url: 'http://localhost/Delete.php',
data: "id=" + "48",
success: function(data){
alert(data);
}
});
});
</script>

از کدهای client side نمیشه برای اینکار استفاده کرد. چرا؟ به دو دلیل(که به ذهن من میرسه)
1- فرض کن انجمن برنامه نویس از این کد استفاده کنه حالا شما تو برنامه نویس لاگین کن و بعد یه تب دیگه هم باز کن حالا یکیشو ببند! نتیجه اینه که شما از لیست کاربران انلاین حذف میشی و دوباره باید لاگین کنی در صورتی که نباید اینطور باشه.
2- اگر مرورگر طرف crash بشه و بدون اینکه اون اسکریپت رو اجرا کنه بسته بشه چی میشه؟


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

فقط نمیدینم میشه جاوا رو با php ارتباط داد...؟؟؟>>>
باجاوا اسکریپت میشه تعداد کاربران انلاین روبصورت لحظه ای نمایش داد.

danial.saeedi
سه شنبه 24 دی 1392, 16:32 عصر
می تونی زمان خارج شدن رو با تابع time بگیری(اگه تاریخ شمسی رو می خوای باید از جلالی استفاده کنی.)

danial.saeedi
سه شنبه 24 دی 1392, 22:26 عصر
سلام دوست عزیز ببخشید پست قبلیم کامل نبود.اصلاح می کنم.

<script language='JavaScript' type='text/javascript'>
window.onbeforeunload=window.location.href="exit_site.php";
</script>

و قسمت exit_site.php رو ارجاعی که می فرسته رو ثبت کنی.
موفق باشید!