Bu təsvirdə ziyarətçiləriniz haqqında məlumat json formatında bir faylda saxlanacaqdır. Verilənlər bazasında saxlamaqdan imtina edərək, lazımsız bir məlumat yığınından qurtulacağıq və mətn sənədində saxlamadan performansı bir az artıracağıq. Bunun üçün iki ayrı funksiya yazdıq.
İlk xüsusiyyətimizi yalnız ziyarətçilərimin ziyarət etdiyi fayllara və ya başlıq kimi hər səhifədə çağırılan fayla əlavə edə bilərsiniz.
function visitor() {
if(!file_exists('assets/visitor.txt')) {
touch('assets/visitor.json');
}
$array['visitors'][0] = array(
"ip" => realip(),
"date" => date('d.m.Y'),
//"page" => $_SERVER['REQUEST_URI']
);
$read = file_get_contents('assets/visitor.json');
if ($read ==") {
$file = fopen('assets/visitor.json', 'w');
fwrite($file, json_encode($array));
fclose($file);
}else{
$decode = json_decode($read, true);
array_push($decode['visitors'], array(
"ip" => realip(),
"date" => date('d.m.Y'),
//"page" => $_SERVER['REQUEST_URI']
));
$encode = json_encode($decode);
file_put_contents("assets/visitor.json", $encode, LOCK_EX);
}
}
To run the function, just type visitor();.
İdarəetmə Panelində JSON faylında saxladığımız IP ünvanı və tarix haqqında ətraflı məlumatı göstərmək üçün ikinci bir xüsusiyyətə ehtiyacımız var.
function visitorgoster($value) {
$json = file_get_contents('assets/visitor.json');
if ($value == 'today') {
$json = json_decode($json,true);
$i = 0;
foreach ($json['visitors'] as $j) {
if (date('d.m.Y',strtotime($j['date'])) == date('d.m.Y')) {
$i++;
}
}
return $i;
}
if ($value == 'unique today') {
$json = json_decode($json,true);
$i = 0;
$tekilyap = array_unique($json);
foreach ($json['visitors'] as $j) {
if (date('d.m.Y',strtotime($j['date'])) == date('d.m.Y')) {
$arr[] = $j['ip'];
}
}
$unique_data = array_unique($arr);
return count($unique_data);
}
if ($value == 'yesterday') {
$json = json_decode($json,true);
$i = 0;
foreach ($json['visitors'] as $j) {
if (date('d.m.Y',strtotime($j['date'])) == date('d.m.Y',strtotime('yesterday'))) {
$i++;
}
}
return $i;
}
if ($value == 'duntekil') {
$json = json_decode($json,true);
foreach ($json['visitors'] as $j) {
if (date('d.m.Y',strtotime($j['date'])) == date('d.m.Y',strtotime('yesterday'))) {
$arr[] = $j['ip'];
}
}
$unique_data = array_unique($arr);
return count($unique_data);
}
if ($value == 'week') {
$json = json_decode($json,true);
$i = 0;
foreach ($json['visitors'] as $j) {
if (date('Y',strtotime($j['date']))) == date('Y') and date('W',strtotime($j['date']))) == date('W')) {
$i++;
}
}
return $i;
}
if ($value == 'haftatekil') {
$json = json_decode($json,true);
$i = 0;
foreach ($json['visitors'] as $j) {
if (date('Y',strtotime($j['date']))) == date('Y') and date('W',strtotime($j['date']))) == date('W')) {
$arr[] = $j['ip'];
}
}
$unique_data = array_unique($arr);
return count($unique_data);
}
if ($value == 'month') {
$json = json_decode($json,true);
$i = 0;
foreach ($json['visitors'] as $j) {
if (date('m.Y',strtotime($j['date'])) == date('m.Y')) {
$i++;
}
}
return $i;
}
if ($value == 'aytekil') {
$json = json_decode($json,true);
$i = 0;
foreach ($json['visitors'] as $j) {
if (date('m.Y',strtotime($j['date'])) == date('m.Y')) {
$arr[] = $j['ip'];
}
}
$unique_data = array_unique($arr);
return count($unique_data);
}
if ($value == 'year') {
$json = json_decode($json,true);
$i = 0;
foreach ($json['visitors'] as $j) {
if(date('Y',strtotime($j['date'])) == date('Y')) {
$i++;
}
}
return $i;
}
if ($value == 'yiltekil') {
$json = json_decode($json,true);
$i = 0;
foreach ($json['visitors'] as $j) {
if(date('Y',strtotime($j['date'])) == date('Y')) {
$arr[] = $j['ip'];
}
}
$unique_data = array_unique($arr);
return count($unique_data);
}
if ($value == 'general') {
$json = json_decode($json,true);
$i = 0;
foreach ($json['visitors'] as $j) {
$i++;
}
return $i;
}
if ($value == 'generic') {
$json = json_decode($json,true);
$i = 0;
foreach ($json['visitors'] as $j) {
$arr[] = $j['ip'];
}
$unique_data = array_unique($arr);
return count($unique_data);
}
}
Ziyarətçilərin Həqiqi ıp ünvanını tanımasını təmin etdiyimiz bir xüsusiyyətimiz var;
function vercekip() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip=$_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip=$_SERVER['REMOTE_ADDR'];
} return $ip;
}
Ziyarət statistikasını göstərin
Bugünkü ziyarətçiləri qəbul etmək üçün Visitcigoster ("bu gün");
Bu gün unikal ziyarətçiləri qəbul etmək üçün Visitcigoster ("unikal bu gün");
Dünənki qonaqları qəbul etmək üçün Visitcigoster ("dünən");
Dünən üçün unikal ziyarətçiləri qəbul etmək üçün Visitcigoster("dünən") ;
Visitcigoster ("həftə") həmin həftə ziyarətçiləri qəbul etmək üçün;
Bu həftə üçün unikal ziyarətçiləri qəbul etmək üçün Visitcigoster ("unikal həftə");
Bu ay ziyarətçiləri qəbul etmək üçün Visitcigoster("ay") ;
Bu ay unikal ziyarətçiləri qəbul etmək üçün visitcigoster("aitekil")seçin;
Bu il ziyarətçiləri qəbul etmək üçün Visitcigoster ("il");
Visitcigoster ("unikal il") bu il unikal ziyarətçilər üçün;
Ziyarətçilərin ümumi sayını əldə etmək üçün vurun visitorgoster ("ümumi");
Unikal ziyarətçilərin ümumi sayını əldə etmək üçün visitorgoster("ümumi sayı") istifadə edin.;