PDA

View Full Version : کاربران آنلاین



Bahram0110
پنج شنبه 03 آبان 1386, 12:53 عصر
سلام

چطور بفهمیم چند نفر در حال حاضر در سایت هستند ؟

tabib_m
پنج شنبه 03 آبان 1386, 17:06 عصر
برای هر کاربر یک مقدار غیر تکراری توی سشن بریز و بعد به ازای بازدید کاربران از هر صفحه، مقدار داخل سشن و تاریخ (دقیق) بازدید صفحه رو توی دیتابیس بریز.
بعد هم میتونی یک سلکت بکنی که مثلا توی 2 دقیقه ی اخیر چه تعداد سشن غیر تکراری ثبت شده، که نتیجه همون تعداد افراد حاضر در سایت هست.

موفق باشید

peyman1987
پنج شنبه 03 آبان 1386, 17:31 عصر
میشه با دونستن مسیر ذخیره سشنها روی سرور و شمردنشون هم به تعداد تقریبی افراد آنلاین پی برد.

Bahram0110
جمعه 04 آبان 1386, 11:19 صبح
میشه با دونستن مسیر ذخیره سشنها روی سرور و شمردنشون هم به تعداد تقریبی افراد آنلاین پی برد.

فایل های Session بعد از Session_Destroy پاک نمی شن محتویاتشون پاک می شه (البته تا جایی که من می دونم :متفکر:

sweb
جمعه 04 آبان 1386, 18:33 عصر
فایل های Session بعد از Session_Destroy پاک نمی شن محتویاتشون پاک می شن

میتونی یک تیر و چند نشان بزنی!!!

یک اگوریتم تعریف کن!! IP، SID (یا حتی id کاربر) و زمان برقراری روی سرور در صورتی که این زمان بیشتر از 5 دقیقه با اخلاف باشه یک رکورد محاسبه شه!

یک سلول (دیتا بیست) مینونه این اطلاعات رو داشته باشه :



1193412564|195.25.356.45|eh54832ab3456742245645675 6465422|28


که به یک explode اطلاعات لازم رو مینونی برداشت کنی.

که البته تعداد رکورد هارو میتونی تعداد مورد نظر در نظر بگیری که به کوئری مورد نظر میتونی با استفاده از mysql_num_rows() تعدادشو برداشت کنی. (بسته به آماری که میخوای ارائه بدی)

تعداد بازدید ها، تعداد بازدید های کاربر، تعداد بازدید هایی که از یک IP ثبت شده (این تعداد بازدید ها رو میتونی بر اساس روز قبل، ماه گذشته، سال جاری و ... ارائه بدی! )، کاربران آنلاین و خیلی از آمار هایی که ممکنه مورد ازش استفاده بکنی به راحتی قابل دسترسی هستش!

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

oxygenws
جمعه 04 آبان 1386, 20:04 عصر
روش sweb خوبه، اما کلا *نریختن* چندین نوع داده در یک ستون پایگاه داده، از رده های بهینه سازی جداول است. (levels of normalization)

angel_boy013
شنبه 05 آبان 1386, 17:40 عصر
این کد رو من جایی دیده بودم یکمی خوبه حالا میخوای شما تست کن ببین بدردت میخوره




$server = "localhost"; // Your MySQL Server (usually "localhost")
$db_user = "root"; // Your MySQL Username
$db_pass = ""; // Your MySQL Password
$database = "test"; // Database Name

$timeoutseconds = 300; // Timeout Value in Seconds

$timestamp=time();
$timeout=$timestamp-$timeoutseconds;
mysql_connect($server, $db_user, $db_pass) or die ("Useronline Database CONNECT Error");
mysql_db_query($database, "INSERT INTO useronline VALUES ('$timestamp','$REMOTE_ADDR','$PHP_SELF')") or die("Useronline Database INSERT Error");
mysql_db_query($database, "DELETE FROM useronline WHERE timestamp<$timeout") or die("Useronline Database DELETE Error");
$result=mysql_db_query($database, "SELECT DISTINCT ip FROM useronline WHERE file='$PHP_SELF'") or die("Useronline Database SELECT Error");
$user =mysql_num_rows($result);
mysql_close();