PDA

View Full Version : سوال: اسکریپت آمار سایت



سميه اميني
شنبه 06 اسفند 1390, 13:30 عصر
من این اسکریپت و استفاده می کنم اما تعداد افراد انلاین همیشه یک هست
ایراد از کجاس ؟


<?
/*
+-----------------------------------------------------------+
+ Counter script By P30vel.ir And Publich By Om!d,eh3an +
+-----------------------------------------------------------+
+ P30vel.ir is Best download PHP, Asp, Ajax Script +
+ Contact Me : omid_samadbin@yahoo.com , +989355229946 +
+-----------------------------------------------------------+
*/
$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&auml;hlt, daher hier abbruch
$ignore = true;
break;
}
}

// counter hochz&auml;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&auml;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&auml;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:8pt;">

&raquo; افراد آن لاين:<? echo $online; ?> <br>
&raquo; بازديدهاي امروز:<? echo $day; ?> <br>
&raquo; بازديدهاي هفته:<? echo $week; ?> <br>
&raquo; بازديدهاي ماه: <? echo $month; ?> <br>
&raquo; بازديدهاي سال:<? echo $year; ?> <br>
&raquo; بازديدهاي كل:<? echo $all; ?>

</td>
</tr>
</table>
<?
}
/*
+-----------------------------------------------------------+
+ Counter script By P30vel.ir And Publich By Om!d,eh3an +
+-----------------------------------------------------------+
+ P30vel.ir is Best download PHP, Asp, Ajax Script +
+ Contact Me : omid_samadbin@yahoo.com , +989355229946 +
+-----------------------------------------------------------+
*/
?>

buggen
شنبه 06 اسفند 1390, 17:23 عصر
$expire رو عوض کنید عددش رو زیاد کنید مشکل حل میشه
فک می کنم زمان اکسپایر شدن هست

سميه اميني
شنبه 06 اسفند 1390, 19:31 عصر
$expire رو عوض کنید عددش رو زیاد کنید مشکل حل میشه
فک می کنم زمان اکسپایر شدن هست
مثلا چند ؟

سميه اميني
یک شنبه 07 اسفند 1390, 08:25 صبح
کسی کد واسه تعداد افراد انلاین نداره ؟

soroush.r70
یک شنبه 07 اسفند 1390, 19:26 عصر
خدمت شما نمایش کامل آمار وب سایت

Reza1607
یک شنبه 07 اسفند 1390, 21:31 عصر
من این اسکریپت و استفاده می کنم اما تعداد افراد انلاین همیشه یک هست
ایراد از کجاس ؟


<?
/*
+-----------------------------------------------------------+
+ Counter script By P30vel.ir And Publich By Om!d,eh3an +
+-----------------------------------------------------------+
+ P30vel.ir is Best download PHP, Asp, Ajax Script +
+ Contact Me : omid_samadbin@yahoo.com , +989355229946 +
+-----------------------------------------------------------+
*/
$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&auml;hlt, daher hier abbruch
$ignore = true;
break;
}
}

// counter hochz&auml;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&auml;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&auml;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:8pt;">

&raquo; افراد آن لاين:<? echo $online; ?> <br>
&raquo; بازديدهاي امروز:<? echo $day; ?> <br>
&raquo; بازديدهاي هفته:<? echo $week; ?> <br>
&raquo; بازديدهاي ماه: <? echo $month; ?> <br>
&raquo; بازديدهاي سال:<? echo $year; ?> <br>
&raquo; بازديدهاي كل:<? echo $all; ?>

</td>
</tr>
</table>
<?
}
/*
+-----------------------------------------------------------+
+ Counter script By P30vel.ir And Publich By Om!d,eh3an +
+-----------------------------------------------------------+
+ P30vel.ir is Best download PHP, Asp, Ajax Script +
+ Contact Me : omid_samadbin@yahoo.com , +989355229946 +
+-----------------------------------------------------------+
*/
?>

به نظرم كد شما ip هاي منحصر به فرد رو ثبت مي كنه