PDA

View Full Version : آمار بازدید سایت



نیلوفر66
جمعه 08 فروردین 1393, 21:29 عصر
سلام
چندتا کد برای آمار سایت تست کردم...ولی متاسفانه آمارهای اشتباه زیاد ثبت میکنه...مثلا آمار دیروز رو پاک میکنه و آمار امروز رو 50 60 تا اضافه میکنه
یک کد برای ثبت آمار و افراد آنلاین در فایل متنی نیاز دارم.

akbar8298
جمعه 08 فروردین 1393, 22:30 عصر
برای شروع کار یک جدول با نام counter با فیلدهای today,yesterday,total,last_visit بسازید.

CREATE TABLE IF NOT EXISTS `counter` (
`today` INT(11) NOT NULL,
`yesterday` INT(11) NOT NULL,
`total` varchar(11) NOT NULL,
`last_visit` varchar(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

و یک سطر جدید درج کنید .

INSERT INTO `counter` (`today`, `yesterday`, `total`, `last_visit`) VALUES
('0', '0', '0', '');

کد آمار


//read last_visit from db
$con=mysql_connect('localhost','root','');
if(!$con)
die('error in connect to db');
$select_db=mysql_select_db('test');
if(!$select_db)
die('error in select db');
$query=mysql_query('select last_visit from counter');
$field=mysql_fetch_array($query);
//Compare dates
$now=date('Y-m-d');
if($field['last_visit']==$now)
$query='update counter set today=today+1,total=total+1';
else
$query="update counter set yesterday=today,today=1,last_visit='$now',total=to tal+1";
mysql_query($query);
//display counter
$query=mysql_query('select * from counter');
$field=mysql_fetch_array($query);
echo "

بازدیدهای امروز : $field[today]

بازدیدهای دیروز : $field[yesterday]

کل بازدیدها : $field[total]

";

hamedarian2009
جمعه 08 فروردین 1393, 23:34 عصر
این در فایل متنی هست
http://webgoo.ir/138/%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%A2%D9%85%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF%D9%87%D8%A7-%D8%A8%D8%A7-php-%D8%A8%D8%AF%D9%88%D9%86-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3

نیلوفر66
شنبه 09 فروردین 1393, 15:29 عصر
این در فایل متنی هست
http://webgoo.ir/138/%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%A2%D9%85%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF%D9%87%D8%A7-%D8%A8%D8%A7-php-%D8%A8%D8%AF%D9%88%D9%86-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3

از این روش استفاده کردم ولی آمار دیروز رو یک میکنه و آمار امروز رو هشتادو سه...فایل متنی رو هم نگاه کردم دیدم همین اعداد رو وارد کرده
یک کد با آمار حقیقی نیاز دارم برای صفحه مدیریت

hamedarian2009
شنبه 09 فروردین 1393, 18:06 عصر
از این روش استفاده کردم ولی آمار دیروز رو یک میکنه و آمار امروز رو هشتادو سه...فایل متنی رو هم نگاه کردم دیدم همین اعداد رو وارد کرده
یک کد با آمار حقیقی نیاز دارم برای صفحه مدیریت
این رو من تست کردم هیچ مشکلی نداره
کدهای آمارسایت رو داخل یه تابع قرار بدین به این صورت :


function amar_site()
{
//اختلاف زمانی سرور
$time_zone = '12600';
//تاریخ امروز
$today = date("Y-m-d", time()+$time_zone);
//تاریخ دیروز
$yesterday = date("Y-m-d", time()-86400+$time_zone);
//آدرس فایل
$file_src = 'visit-stats.txt';
chmod($file_src, 0755);
//خواندن فایل
$read_file = file_get_contents($file_src);
//اگر فایل خالی نبود
if (filesize($file_src) > 0 || $read_file != ''){
$split_file = explode('|', $read_file);
//print_r($split_file);
$modify = $split_file[3];
//اگر تاریخ آخرین ویرایش برابر تاریخ امروز نبود
if($modify != $today){
$today_visit = 1;
$yesterday_visit = $split_file[0];
$total_visit = $split_file[2] + 1;
$last_modify = $today;
}
//اگر تاریخ آخرین ویرایش برابر امروز بود
else{
$today_visit = $split_file[0] + 1;
$yesterday_visit = $split_file[1];
$total_visit = $split_file[2] + 1;
$last_modify = $today;
}
}
//اگر فایل خالی بود
else{
$today_visit = 1;
$yesterday_visit = 0;
$total_visit = 1;
$last_modify = $today;
}
//نوشتن آمار جدید در فایل
$file_src_handle = fopen($file_src, 'w+');
$visit_data = $today_visit.'|'.$yesterday_visit.'|'.$total_visit .'|'.$last_modify;
fwrite($file_src_handle, $visit_data);
fclose($file_src_handle);
//محاسبه تعداد کاربران آنلاین
$config_array = array(
'user_time' => date("YmdHis", time()+$time_zone),
'user_ip' => $_SERVER['REMOTE_ADDR'],
'file_name' => 'visit-online.txt'
);
chmod($config_array['file_name'], 0755);
//خواندن اطلاعات فایل
$online_file = file_get_contents($config_array['file_name']);
//تجزیه به آرایه
$online_file = explode("\r\n", $online_file);
//حذف مقادیر خالی
foreach($online_file as $key=> $value){
if(is_null($value) || $value == ''){
unset($online_file[$key]);
}
}
//حذف آی پی های قدیمی و آی پی فعلی
foreach($online_file as $key=> $value){
$user_ip_time = explode("|", $value);
if($user_ip_time[1] <= date("YmdHis", time()+$time_zone - 300)){
unset($online_file[$key]);
}
if($user_ip_time[0] == $config_array['user_ip']){
unset($online_file[$key]);
}
}
//محاسبه تعداد افراد آنلاین
$online = 1;
foreach($online_file as $online_users){
$user_ip_time = explode("|", $online_users);
if($user_ip_time[1] >= date("YmdHis", time()+$time_zone - 300)){
$online++;
}
}
//آمار کاربرانی که آنلاین هستند به اضافه کاربر فعلی
$new_online = $config_array['user_ip'] . "|" . $config_array['user_time'] . "\r\n";;
foreach($online_file as $key=> $value){
$new_online .= $value . "\r\n";
}
//نوشتن آمار جدید در فایل
$file_src_handle = fopen($config_array['file_name'], 'w+');
fwrite($file_src_handle, $new_online);
fclose($file_src_handle);
////////////////* http://webgoo.ir *///////////////
$user_ip = $_SERVER['REMOTE_ADDR'];
//گرفتن خروجی
return "<div class=\"stats\">
&raquo; بازدید امروز: $today_visit <br />
&raquo; بازدید دیروز: $yesterday_visit <br />
&raquo; افراد آنلاین: $online <br />
&raquo; ip شما : $user_ip <br />
&raquo; بازدید کل: $total_visit
</div>";
}


بعدش هرجای سایت میخاهید استفاده کنید کافیه اونو فراخوانی کنید :

echo amar_site();

نیلوفر66
شنبه 09 فروردین 1393, 21:03 عصر
از همین کد استفاده کردم و روی لوکال هاست چک کردم روز بعد که آمار رو نگاه کردم نوشته بود 83 بازدید!!!!!! اگر واقعا مطمین هستید درست کار میکنه و نمره ش رو 20شده استفاده کنم
؟
آمار رو داخل یک جدول ذخیره کردم چون داخل صفحه مدیریت نمایش داده میشه. اگر بخوام بصورت تابع بنویسم و داخل صفحه مدیریت چاپ بشه باید چیکارکنم؟

نیلوفر66
چهارشنبه 20 فروردین 1393, 12:15 عصر
کسی کدی نداره درست کار کنه؟این کدها بازدیدی دیروز رو یک میکنه و بازدید امروز رو هرچقدر دلش میخواد اضافه!!!!!!!!!!!!

refugee
پنج شنبه 21 فروردین 1393, 00:48 صبح
خانم نمیشه که همه ی کد ها خراب باشه .

شما یه دور دوباره کدهاتون رو بررسی کنید .احتمالا مشکل از جای دیگه است .

hamedarian2009
پنج شنبه 21 فروردین 1393, 13:34 عصر
کسی کدی نداره درست کار کنه؟این کدها بازدیدی دیروز رو یک میکنه و بازدید امروز رو هرچقدر دلش میخواد اضافه!!!!!!!!!!!!

وقتی این کدها تو سیستم من کار میکنه و آمارش درسته .
یک سایت اینو کار کرده و هزاران نفر ازین کد استفاده کردن احتمالا مشکلتون از جای دیگست باید کل کدهاتون رو بزارین برسی بشه

نیلوفر66
چهارشنبه 27 فروردین 1393, 10:36 صبح
اگر بخوام کدها در صفحه اول و آمار در صفحه مدیریت نمایش داده بشه تابع رو چجوری اونجا فراخوانی کنم؟

hamedarian2009
چهارشنبه 27 فروردین 1393, 17:23 عصر
این کد رو تو یک فایل جداگانه ذخیره مثلا تو فایلی به نام amar.php و هرجا خواستین ازش استفاده کنید کافیه قبلش اون صفحه رو اینکلود کنید


include 'amar.php';
echo amar_site();

نیلوفر66
چهارشنبه 27 فروردین 1393, 21:58 عصر
این کد چجوری کارمیکنه وقتی توی صفحه دیگه ای اینکلود میشه و امار صفحه اصلی رو میخوایم؟!
یعنی کلا این کد وقتی هرصفحه سایت بازدید میشه کارمیکنه یا فقط صفحه اول؟شاید یکی لینک صفحه خاصی رو بوک مارک کرده و تنها ازاون صفحه بازدید میکنه این به امار اضافه میشه؟

Golsha
چهارشنبه 27 فروردین 1393, 22:08 عصر
این کد ، تو هر صفحه ای اینکلود بشه به آمار سایتتون اضافه میکنه .. یعنی اگه تو قسمت ادمین سایتتون اینکلود بشه ، وقتی وارد صفحه ادمین بشید دوباره به آمار سایتتون اضافه میکنه .

Golsha
چهارشنبه 27 فروردین 1393, 22:10 عصر
شما قسمت نوشتن تو فایلا رو حذف کنید و در صفحه ادمینتون اینکلودش کنید ، حله

Unique
پنج شنبه 28 فروردین 1393, 12:13 عصر
خیلی Thread با حالی بود ... :چشمک:
دوست عزیز وقتی شما میتونید از webgozar و persianstat و Google Analytics و کلی سرویس خارجی استفاده کنید که آمار را خیلی حرفه ای و کامل بهتون میدن ! counter ساختن برای چیه ؟

نشون دادن آمار سایت به بازدید کننده از نظر من هیچ ارزشی نداره ! چون اگه بالا باشه طرف میگه الکی بالا نوشتن (seed بالا دادن) اگه پایین باشه میگن این چه سایت در پیتیه ! خلاصه قضیه خر و مرد و پسرش میشه.

توصیه من را بپذیرین و از سرویس های آماده استفاده کنین. در ضمن نیاز نیست آمار را بازدید کننده ببینه ! حالا صلاح ملک خویش ....

نیلوفر66
پنج شنبه 28 فروردین 1393, 13:10 عصر
برای مدیریت میخوام براشون مهم هست تعداد بازدیدکننده سایت و قسمت فروش محصولشون چقدرهست.

Golsha
پنج شنبه 28 فروردین 1393, 13:18 عصر
خیلی Thread با حالی بود ... :چشمک:
دوست عزیز وقتی شما میتونید از webgozar و persianstat و Google Analytics و کلی سرویس خارجی استفاده کنید که آمار را خیلی حرفه ای و کامل بهتون میدن ! counter ساختن برای چیه ؟

نشون دادن آمار سایت به بازدید کننده از نظر من هیچ ارزشی نداره ! چون اگه بالا باشه طرف میگه الکی بالا نوشتن (seed بالا دادن) اگه پایین باشه میگن این چه سایت در پیتیه ! خلاصه قضیه خر و مرد و پسرش میشه.

توصیه من را بپذیرین و از سرویس های آماده استفاده کنین. در ضمن نیاز نیست آمار را بازدید کننده ببینه ! حالا صلاح ملک خویش ....

دوست عزیز این که میشه پاک کردن صورت مسئله ، جدا از اینکه ایشون به این کد نیاز دارن ، با این کار آدم راه یاد گیری رو رو خودش میبنده ، حالا صلاح ملک خویش .... :چشمک:

Unique
جمعه 29 فروردین 1393, 01:30 صبح
برای مدیریت میخوام براشون مهم هست تعداد بازدیدکننده سایت و قسمت فروش محصولشون چقدرهست.

از persianstat.com برای آمار سایت استفاده کنید ولی برای آمار فروش باید خودتون گزارش سازی کنید و از روی جدول فروش محصولات اطلاعات را استخراج و گزارش کنید.


دوست عزیز این که میشه پاک کردن صورت مسئله ، جدا از اینکه ایشون به این کد نیاز دارن ، با این کار آدم راه یاد گیری رو رو خودش میبنده
این از مواردی هست که مثل چرخ نیاز به اختراع نداره ! بهتره یادگیری صرف پیاده سازی بخش های اصلی سایت بشه تا یک موضوع کاملا حاشیه ای مثل Statistics ! مثلا شما بخوای انجمن بگذاری توی سایتت میای از اول انجمن مینویسی یا از PHPBB یا vBulletin استفاده میکنی ؟

البته اشتباه نشه ها ، من نمیگم برای هر کاری وصله پینه کنین. ولی یکسری ابزار ها واقعا نیاز به نوشتن مجدد نداره ! کسی بخواد وب لاگ بزنه خوب word press هست ! چرا باید خودش بنویسه ؟ وقتتون را صرف پروژه هایی کنین که ایده و طرح متفاوت و از خودتون باشه ! کپی از چیزی که هست فایده نداره. مثلا من خودم CMS برای خودم دارم و هیچ ربطی به joomla و بقیه نداره ! پس اشتباه متوجه حرف من نشین.

اصلا شما بیا کدی که برای counter نوشتی را یک کلاسش کن و بگو include کنین و فلان method را فراخونی کنین. اینجوری نیاز نیست طرف درگیر کد شما بشه. امیدوارم منظورم را روشن گفته باشم.

نیلوفر66
شنبه 30 فروردین 1393, 20:17 عصر
آفای Unique (http://barnamenevis.org/member.php?11933-Unique) از راهنماییتون.
فسمت فروش محصول تنها یک صفحه هست که مشاهده میشه و تلفنی سفارش داده میشه که در قسمت آدرس سایت آدرس اون صفحه رو وارد میکنم.

afshin_1989
دوشنبه 01 اردیبهشت 1393, 22:51 عصر
یعنی این اینقدر سخته که هنوز به جواب نرسیدید؟