File size: 1.43Kb
<?php
$config_referer="20"; //cохраняется рефереров
$ref_from=getenv("HTTP_REFERER");
if (ereg ("^http",$ref_from)){
$ref_from=str_replace("http://","",$ref_from);
$ref_from=str_replace("https://","",$ref_from);
$ref_from=strtok($ref_from,'/');
$ref_from=strtok($ref_from,'?');
$ref_from=htmlspecialchars(stripslashes(trim($ref_from)));
$lines=file("../data/referer.dat");
$count=count($lines);
for ($b=0; $b<$count; $b++) {
$dt=explode("|",$lines[$b]);
if ($dt[0]==$ref_from) {
$linn=$b; $ref_count=$dt[3];}}
if(!empty($ref_from)){
if(strval($linn)>="0"){
$ref_count=$ref_count+1;
$time=time();
$t="$ref_from|$time|$ip|$ref_count|";
$file=file("../data/referer.dat");
$fp=fopen("../data/referer.dat","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
for ($i=0;$i< sizeof($file);$i++) {if ($linn!=$i) {fputs($fp,$file[$i]);} else {fputs($fp,"$t\r\n");}}
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);}
else{
$time=time();
$t="$ref_from|$time|$ip|1|";
$fp = @fopen("../data/referer.dat","a+");
flock ($fp,LOCK_EX);
@fputs($fp,"$t\r\n");
fflush ($fp);
flock ($fp,LOCK_UN);
@fclose($fp);
$config_referer=$config_referer+2;
$file=file("../data/referer.dat");
$i = count($file);
if ($i>=$config_referer) {
$fp=fopen("../data/referer.dat","w");
flock ($fp,LOCK_EX);
unset($file[0]);
unset($file[1]);
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);}
}}}
?>