رفتن به مطلب

پست های پیشنهاد شده

با سلام خدمت همه دوستان

همین طور که از عنوان تاپیک معلومه یک کد آمار بازدیدکنندگان (بازدید امروز، بازدید دیروز، افراد آنلاین، ورودی گوگل) بدون نیاز به افزونه برای نمایش در سایدبار می خواستم

با تشکر

لینک به ارسال

سلام دوست عزيز خوش اومديد به انجمن !‌ دليل خاصي داره ميخواين از افزونه استفاده نكنيد !‌

من همچين كدي نديدم ولي اگه با افزونه بخواين كارو بكنيد ميتونم كمكتون كنم !‌

لینک به ارسال

برای کد آمار شما نیاز به دیتابیس دارید که آمار رو توش چک کنه. اما در این روش به جای دیتا بیس از یک فایل متنی که اینجا counter.txt نام داره استفاده میشه !

این فایل کوچک و قدرتمند کار دیتابیس رو انجام میده . اما نیازی به دیتابیس نداره !

هرجا که از کد استفاده کردید ، فایل txt رو همونجا آپلود کنید .

<?php

$expire = 1;

$filename = "counter.txt";

if (file_exists($filename))

{

$ignore = false;

$current_agent = (isset($_SERVER['HTTP_USER_AGENT'])) ? addslashes(trim($_SERVER['HTTP_USER_AGENT'])) : "no agent";

$current_time = time();

$current_ip = $_SERVER['REMOTE_ADDR'];

// daten einlesen

$c_file = array();

$handle = fopen($filename, "r");

if ($handle)

{

while (!feof($handle))

{

$line = trim(fgets($handle, 4096));

if ($line != "")

$c_file[] = $line;

}

fclose ($handle);

}

else

$ignore = true;

// bots ignorieren

if (substr_count($current_agent, "bot") > 0)

$ignore = true;

// hat diese ip einen eintrag in den letzten expire sec gehabt, dann igornieren?

for ($i = 1; $i < sizeof($c_file); $i++)

{

list($counter_velip, $counter_veltime) = explode("||", $c_file[$i]);

$counter_veltime = trim($counter_veltime);

if ($counter_velip == $current_ip && $current_time-$expire < $counter_veltime)

{

// besucher wurde bereits gezählt, daher hier abbruch

$ignore = true;

break;

}

}

// counter hochzählen

if ($ignore == false)

{

if (sizeof($c_file) == 0)

{

// wenn counter leer, dann füllen

$add_line1 = date("z") . ":1||" . date("W") . ":1||" . date("n") . ":1||" . date("Y") . ":1||1||1||" . $current_time . "\n";

$add_line2 = $current_ip . "||" . $current_time . "\n";

// daten schreiben

$fp = fopen($filename,"w+");

if ($fp)

{

flock($fp, LOCK_EX);

fwrite($fp, $add_line1);

fwrite($fp, $add_line2);

flock($fp, LOCK_UN);

fclose($fp);

}

// werte zur verfügung stellen

$day = $week = $month = $year = $all = $record = 1;

$record_time = $current_time;

$online = 1;

}

else

{

// counter hochzählen

list($day_arr, $week_arr, $month_arr, $year_arr, $all, $record, $record_time) = explode("||", $c_file[0]);

// day

$day_data = explode(":", $day_arr);

$day = $day_data[1];

if ($day_data[0] == date("z")) $day++; else $day = 1;

// week

$week_data = explode(":", $week_arr);

$week = $week_data[1];

if ($week_data[0] == date("W")) $week++; else $week = 1;

// month

$month_data = explode(":", $month_arr);

$month = $month_data[1];

if ($month_data[0] == date("n")) $month++; else $month = 1;

// year

$year_data = explode(":", $year_arr);

$year = $year_data[1];

if ($year_data[0] == date("Y")) $year++; else $year = 1;

// all

$all++;

// neuer record?

$record_time = trim($record_time);

if ($day > $record)

{

$record = $day;

$record_time = $current_time;

}

// speichern und aufräumen und anzahl der online leute bestimmten

$online = 1;

// daten schreiben

$fp = fopen($filename,"w+");

if ($fp)

{

flock($fp, LOCK_EX);

$add_line1 = date("z") . ":" . $day . "||" . date("W") . ":" . $week . "||" . date("n") . ":" . $month . "||" . date("Y") . ":" . $year . "||" . $all . "||" . $record . "||" . $record_time . "\n";

fwrite($fp, $add_line1);

for ($i = 1; $i < sizeof($c_file); $i++)

{

list($counter_velip, $counter_veltime) = explode("||", $c_file[$i]);

// übernehmen

if ($current_time-$expire < $counter_veltime)

{

$counter_veltime = trim($counter_veltime);

$add_line = $counter_velip . "||" . $counter_veltime . "\n";

fwrite($fp, $add_line);

$online++;

}

}

$add_line = $current_ip . "||" . $current_time . "\n";

fwrite($fp, $add_line);

flock($fp, LOCK_UN);

fclose($fp);

}

}

}

else

{

// nur zum anzeigen lesen

if (sizeof($c_file) > 0)

list($day_arr, $week_arr, $month_arr, $year_arr, $all, $record, $record_time) = explode("||", $c_file[0]);

else

list($day_arr, $week_arr, $month_arr, $year_arr, $all, $record, $record_time) = explode("||", date("z") . ":1||" . date("W") . ":1||" . date("n") . ":1||" . date("Y") . ":1||1||1||" . $current_time);

// day

$day_data = explode(":", $day_arr);

$day = $day_data[1];

// week

$week_data = explode(":", $week_arr);

$week = $week_data[1];

// month

$month_data = explode(":", $month_arr);

$month = $month_data[1];

// year

$year_data = explode(":", $year_arr);

$year = $year_data[1];

$record_time = trim($record_time);

$online = sizeof($c_file) - 1;

}

?>

<table cellspacing="0" cellpadding="0">

<tr>

<td dir="rtl" style="font-family:tahoma;font-size:12pt;">

» افراد آن لاين:<?php echo $online; ?> <br>

» بازديدهاي امروز:<?php echo $day; ?> <br>

» بازديدهاي هفته:<?php echo $week; ?> <br>

» بازديدهاي ماه: <?php echo $month; ?> <br>

» بازديدهاي سال:<?php echo $year; ?> <br>

» بازديدهاي كل:<?php echo $all; ?>

</td>

</tr>

</table>

<?php

}

?>

فایل counter.txt رو هم براتون پیوست کردم

من خودم دنبالش بودم که از سایت ادمین وب پیداش کردم

counter.zip

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...