View file includes/counters.php

File size: 7.17Kb
<?php
#-----------------------------------------------------#
#          ********* WAP-MOTORS *********             #
#             Made by   :  VANTUZ                     #
#               E-mail  :  [email protected]         #
#                 Site  :  http://pizdec.ru           #
#             WAP-Site  :  http://visavi.net          #
#                  ICQ  :  36-44-66                   #
#  Вы не имеете право вносить изменения в код скрипта #
#        для его дальнейшего распространения          #
#-----------------------------------------------------#
if (!defined('BASEDIR')) { header("Location:../index.php"); exit; }

$maxonline = 250; // Cколько онлайн записей хранить

$count_online = counter_string(DATADIR."online.dat");
if ($count_online>=$maxonline) {
delete_lines(DATADIR."online.dat",array(0,1));
}

$oftime = SITETIME - 600;
$den = date("d",SITETIME);
$hour = date("H",SITETIME);

$found = 0;
$user = array();
$arrtimehour = mktime(date("H",SITETIME), 0, 0, date("m",SITETIME), date("d",SITETIME), date("Y",SITETIME));
$arrtimeday = mktime(0, 0, 0, date("m",SITETIME), date("d",SITETIME), date("Y",SITETIME));

$f = fopen(DATADIR."online.dat","r+");
if ($f){
flock($f,LOCK_EX);
while (!feof($f)){
$user[] = fgets($f,65536);
}

fseek($f,0,SEEK_SET);
ftruncate($f,0);

foreach($user as $val) {

$savesdata = explode("|",$val);

if (isset($savesdata[1]) && $ip==$savesdata[1] && $savesdata[0]>$oftime){$found = 1;}
if (isset($savesdata[2]) && $savesdata[2]==$log && $savesdata[2]!=""){$savesdata[1] = $ip;}

if ($savesdata[0]>$oftime && $ip!=$savesdata[1] && $savesdata[1]!=""){
fputs($f,$savesdata[0].'|'.$savesdata[1].'|'.$savesdata[2].'|'.$savesdata[3]."|\r\n");
}
}

fputs($f,SITETIME.'|'.$ip.'|'.$log.'|'.$brow."|\r\n");

fflush($f);
flock($f,LOCK_UN);
fclose ($f);
}

############################################################################################
##                                      Запись хитов                                      ##
############################################################################################
$arcounts = array();
$fp = fopen(DATADIR."datacounter/hits.dat","a+");
if ($fp){
flock($fp,LOCK_EX);
while (!feof($fp)){
$arcounts[] = fgets($fp,100);
}
$counts = explode("|",$arcounts[0]);

//----------------------- Статистика за 24 часа (хиты) ----------------------------//
if(isset($counts[3]) && isset($counts[4]) && $counts[3]!=$hour){

$filehits24 = file(DATADIR."datacounter/24_hits.dat");
$datahits24 = explode("|",end($filehits24));

if ($arrtimehour>$datahits24[1]){
write_files(DATADIR."datacounter/24_hits.dat", $counts[4]."|".$arrtimehour."|\r\n", 0, 0666);
$counts[3] = $hour; $counts[4] = 0;
}

if (count($filehits24)>24) {
delete_lines(DATADIR."datacounter/24_hits.dat", 0);
}}

//------------------------ Статистика за 31 день (хиты) ---------------------------//
if (isset($counts[0]) && isset($counts[1]) && $counts[0]!=$den){

$filehits31 = file(DATADIR."datacounter/31_hits.dat");
$dathits31 = explode("|",end($filehits31));

if ($arrtimeday>$dathits31[1]){
write_files(DATADIR."datacounter/31_hits.dat", $counts[1]."|".$arrtimeday."|\r\n", 0, 0666);
$counts[0] = $den; $counts[1] = 0; $found = 0;
}

if (count($filehits31)>31) {
delete_lines(DATADIR."datacounter/31_hits.dat", 0);
}}

//----------------------- Каждое посещение ----------------------------//
$counts[1]++; $counts[2]++; $counts[4]++;
$zapis = $counts[0].'|'.$counts[1].'|'.$counts[2].'|'.$counts[3].'|'.$counts[4].'|';

ftruncate($fp,0);
fputs($fp,$zapis);
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
@chmod (DATADIR."datacounter/hits.dat", 0666);
}


############################################################################################
##                                      Запись хостов                                     ##
############################################################################################
if ($found==0){
$arcounts = array();
$fp = fopen(DATADIR."datacounter/host.dat","a+");
if ($fp){
flock($fp,LOCK_EX);
while (!feof($fp)){
$arcounts[] = fgets($fp,100);
}
$counts = explode("|",$arcounts[0]);

//----------------------- Статистика за 24 часа (хосты) ----------------------------//
if(isset($counts[3]) && isset($counts[4]) && $counts[3]!=$hour){

$filehost24 = file(DATADIR."datacounter/24_host.dat");
$datahost24 = explode("|",end($filehost24));

if ($arrtimehour>$datahost24[1]){
write_files(DATADIR."datacounter/24_host.dat", $counts[4]."|".$arrtimehour."|\r\n", 0, 0666);
$counts[3] = $hour; $counts[4] = 0;
}

if (count($filehost24)>24) {
delete_lines(DATADIR."datacounter/24_host.dat", 0);
}}

//------------------------ Статистика за 31 день (хосты) ---------------------------//
if (isset($counts[0]) && isset($counts[1]) && $counts[0]!=$den){

$filehost31 = file(DATADIR."datacounter/31_host.dat");
$dathost31 = explode("|",end($filehost31));

if ($arrtimeday>$dathost31[1]){
write_files(DATADIR."datacounter/31_host.dat", $counts[1]."|".$arrtimeday."|\r\n", 0, 0666);
$counts[0] = $den; $counts[1] = 0;
}

if (count($filehost31)>31) {
delete_lines(DATADIR."datacounter/31_host.dat", 0);
}}

//----------------------- Каждое посещение ----------------------------//
$counts[1]++; $counts[2]++; $counts[4]++;
$zapis = $counts[0].'|'.$counts[1].'|'.$counts[2].'|'.$counts[3].'|'.$counts[4].'|';

ftruncate($fp,0);
fputs($fp,$zapis);
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
@chmod (DATADIR."datacounter/host.dat", 0666);
}
}

//-------------------------- Онлайн ------------------------------//
if ($config['onlines']==1){

$onlinefile = file_get_contents(DATADIR."online.dat");
$substr_count = substr_count($onlinefile,'||');

$counter_online = counter_string(DATADIR."online.dat");
$counter_reg = $counter_online - $substr_count;

echo '<a href="'.BASEDIR.'pages/online.php">На сайте: '.$counter_reg.'/'.$counter_online.'</a><br>';
}

//----------------------- Статистика ----------------------------//
if ($config['incount']>0){

$counter_host = 0;
$counter_all = 0;
$counter_hits = 0;
$counter_allhits = 0;

if (file_exists(DATADIR."datacounter/host.dat")){
$countfile = file_get_contents(DATADIR."datacounter/host.dat");
$countarr = explode("|",$countfile);
$counter_host = $countarr[1];
$counter_all = $countarr[2];
}

if (file_exists(DATADIR."datacounter/hits.dat")){
$hcount = file_get_contents(DATADIR."datacounter/hits.dat");
$hcount = explode("|",$hcount);
$counter_hits = $hcount[1];
$counter_allhits = $hcount[2];
}

if ($config['incount']==1){ echo '<a href="'.BASEDIR.'pages/counter.php">'.$counter_host.' | '.$counter_all.'</a><br>';}
if ($config['incount']==2){ echo '<a href="'.BASEDIR.'pages/counter.php">'.$counter_hits.' | '.$counter_allhits.'</a><br>';}
if ($config['incount']==3){ echo '<a href="'.BASEDIR.'pages/counter.php">'.$counter_host.' | '.$counter_hits.'</a><br>';}
if ($config['incount']==4){ echo '<a href="'.BASEDIR.'pages/counter.php">'.$counter_all.' | '.$counter_allhits.'</a><br>';}
if ($config['incount']==5){ echo '<a href="'.BASEDIR.'pages/counter.php"><img src="'.BASEDIR.'gallery/count.php" alt="+"></a><br>';}
}
?>