سلام
چطور بفهمیم چند نفر در حال حاضر در سایت هستند ؟
سلام
چطور بفهمیم چند نفر در حال حاضر در سایت هستند ؟
برای هر کاربر یک مقدار غیر تکراری توی سشن بریز و بعد به ازای بازدید کاربران از هر صفحه، مقدار داخل سشن و تاریخ (دقیق) بازدید صفحه رو توی دیتابیس بریز.
بعد هم میتونی یک سلکت بکنی که مثلا توی 2 دقیقه ی اخیر چه تعداد سشن غیر تکراری ثبت شده، که نتیجه همون تعداد افراد حاضر در سایت هست.
موفق باشید
میشه با دونستن مسیر ذخیره سشنها روی سرور و شمردنشون هم به تعداد تقریبی افراد آنلاین پی برد.
میتونی یک تیر و چند نشان بزنی!!!فایل های Session بعد از Session_Destroy پاک نمی شن محتویاتشون پاک می شن
یک اگوریتم تعریف کن!! IP، SID (یا حتی id کاربر) و زمان برقراری روی سرور در صورتی که این زمان بیشتر از 5 دقیقه با اخلاف باشه یک رکورد محاسبه شه!
یک سلول (دیتا بیست) مینونه این اطلاعات رو داشته باشه :
1193412564|195.25.356.45|eh54832ab3456742245645675 6465422|28
که به یک explode اطلاعات لازم رو مینونی برداشت کنی.
که البته تعداد رکورد هارو میتونی تعداد مورد نظر در نظر بگیری که به کوئری مورد نظر میتونی با استفاده از mysql_num_rows() تعدادشو برداشت کنی. (بسته به آماری که میخوای ارائه بدی)
تعداد بازدید ها، تعداد بازدید های کاربر، تعداد بازدید هایی که از یک IP ثبت شده (این تعداد بازدید ها رو میتونی بر اساس روز قبل، ماه گذشته، سال جاری و ... ارائه بدی! )، کاربران آنلاین و خیلی از آمار هایی که ممکنه مورد ازش استفاده بکنی به راحتی قابل دسترسی هستش!
اگه چیزای دیگه ای احتیاج داری هم می تونی بهش اضافه کنی. یک روش خوبه که همیشه هم تو دیتا بیست هست!
روش sweb خوبه، اما کلا *نریختن* چندین نوع داده در یک ستون پایگاه داده، از رده های بهینه سازی جداول است. (levels of normalization)
ایمیل من
سایت من
عضویت در جامعهی اهدای عضو
Direct PGP key: http://tinyurl.com/66q5cy
PGP key server: keyserver.ubuntu.com
PGP name to search: omidmottaghi
این کد رو من جایی دیده بودم یکمی خوبه حالا میخوای شما تست کن ببین بدردت میخوره
$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();