..::  LICZNIK ODWIEDZIN  ::..
Wielu webmasterów poszukuje dobrego skryptu licznika odwiedzin, który byłby odporny na odświeżanie i przeładowanie strony. Ten licznik tekstowy służy do zliczania liczby odwiedzających twój serwis i przy każdej próbie wejścia ma twoją stronę jest pobierany numer IP użytkownika i po porównaniu z istniejącymi w bazie jest ewentualnie dodawany do danych.
Licznik posiada funkcję zliczania dziennego - tzw. licznik dzienny, oraz licznik gości online.
Dodałem również licznik ile dni istnieje strona, oraz czas ładowania strony
Wklej poniższy kod na stronę, na której chcesz zliczać liczbę gości.
Kod należy wkleić na samej górze strony ! ! !
<?php
ob_start();
$start=microtime();
// kod do liczenia czasu ładowania strony
?>
Następnie wstaw na stronie poniższy kod w miejscu w którym ma być wyświetlany licznik
<?php
ob_start();
include("zlicz.php");
?>
Utwórz plik zlicz.php i wrzuć go na serwer do głównego katalogu
A oto zawartość pliku zlicz.php
<?php
ob_start();
// ========== Funkcje ==========
function open($name="",$trybe="r",$value="0")
        {
if(file_exists($name))
    {
$file=fopen($name, $trybe);
flock($file, 1);
if (filesize($name)>0) return fread(fopen($name, $trybe), filesize($name)); else return $value;
flock($file, 3);
fclose($file);
    }
        }
function save($name="",$date="",$trybe="w")
    {
if(file_exists($name))
        {
$file=fopen($name, $trybe);
flock($file, 2);
fwrite($file, $date);
flock($file, 3);
fclose($file);
        }
    }
// =========== Ścieżki ==========
$scr[0] = "licznik/ip.dat";
$scr[1] = "licznik/dane.dat";
$scr[2] = "licznik/log.dat";
// ========== Zmienne ==========
$aktu_ip = $_SERVER['REMOTE_ADDR'];
$host = gethostbyaddr($aktu_ip);
$aktu_czas = (date(G)*3600)+(date(i)*60)+date(s);      //date(G)*60+date(i); 3600 = 1h;
$czas_online = 600;      // (10 minut) = 600 sekund
$czas_opuznienia = 900;      // (15 minut) = 900 sekund
$data = date("Y-m-d", time());
$online = 1;
$zmienna = False;
$nowe_dane = '';
// =========== Źródło ==========
$dane = explode(chr(1),open($scr[1]));
if(!strcmp($dane[2],$data))
{
$tab1 = explode(chr(1), open($scr[0]));
for( $x = 0; $x <= count($tab1)-2; $x+=2 )
{
if(!strcmp($aktu_ip, $tab1[$x]))
        {
if($aktu_czas - $czas_opuznienia < $tab1[$x+1]) $zmienna=True;
        }
  else
        {
if($aktu_czas - $czas_opuznienia < $tab1[$x+1])
                {
$nowe_dane .= $tab1[$x].chr(1).$tab1[$x+1].chr(1);
if($aktu_czas - $czas_online < $tab1[$x+1]) $online++;
                }
}
       }
if ($zmienna == 0)
       {
$dane[0]++;
$dane[1]++;
save($scr[1],$dane[0].chr(1).$dane[1].chr(1).$dane[2]);
$wszystko = "$dane[0] -".chr(1). "- $dane[1] -" .chr(1). "- $online -" .chr(1). date("- Y-m-d -" .chr(1). "- G:i:s -", time()) .chr(1). "- $aktu_ip -" .chr(1). "- $host -" .chr(1). $HTTP_REFERER .chr(1). $HTTP_USER_AGENT .chr(13).chr(10);
save($scr[2],$wszystko,"a");
       }
    }
else
    {
save($scr[0]);
$dane[0]++;
$dane[1] = 1;
save($scr[1],$dane[0].chr(1).$dane[1].chr(1).$data);
$wszystko = "$dane[0] -".chr(1). "- $dane[1] -" .chr(1). "- $online -" .chr(1). date("- Y-m-d -" .chr(1). "- G:i:s -", time()) .chr(1). "- $aktu_ip -" .chr(1). "- $host -" .chr(1). $HTTP_REFERER .chr(1). $HTTP_USER_AGENT .chr(13).chr(10);
save($scr[2],$wszystko,"a");
    }
$nowe_dane> .= $aktu_ip.chr(1).$aktu_czas.chr(1);
save($scr[0],$nowe_dane);
echo "<font color=\"blue\">odwiedzin: </font><font color=#ADCAFF><b>$dane[0]</b></font><br>";
echo "<font color=\"blue\">dzisiaj: </font><font color=#ADCAFF><b>$dane[1]</b></font><br>";
echo "<font color=\"blue\">on-line: </font><font color=#ADCAFF><b>$online</b></font><br>";

// LICZNIK POWSTANIA STRONY
//przekształcamy datę w przeszłości do formatu unix'owego
$data = strtotime("2008-11-25 0:00:30");    //tu wpisz datę od kiedy ma liczyć
//pobieramy bieżący czas
$teraz = time();
//różnice dzielimy przez jeden dzień czyli 60 s. * 60 m. * 24 godz.
$dni_r = ($teraz - $data/ (60 * 60 * 24);
//część całkowita z dzielenia to liczba dni
$dni_c = floor($dni_r);
//resztę z dzielenia mnożymy przez dobę
$godzin_r = ($dni_r - $dni_c) * 24;
//część całkowita z mnożenia to liczba godzin
$godzin_c = floor($godzin_r);
//resztę mnożymy przez godzinę
$minut_r = ($godzin_r - $godzin_c) * 60;
//część całkowita to liczba minut
$minut_c = floor($minut_r);
//część całkowita reszty pomnożonej przez minutę to liczba sekund
$sekund_c = floor(($minut_r - $minut_c) * 60);
echo "<font color=\"blue\">strona istnieje: </font><font color=#ADCAFF><b>$dni_c</b></font><font color=\"blue\"> dni</font><br>";

// LICZNIK GENEROWANIA STRONY
echo "<font color=\"blue\">ładowanie: </font>";
echo "<font color=#ADCAFF><b>";
echo round(microtime()-$start, 3);
echo "</b></font><font color=\"blue\"> sek</font>";
?>
I na zakończenie utwórz 3 pliki  log.dat      ip.dat      dane.dat
wrzuć je na serwer i nadaj im prawa chmod 666
A tak to wygląda w praktyce
odwiedzin: 2375
dzisiaj: 46
on-line: 3
strona istnieje: 104 dni
ładowanie: -0.721 sek
Tutaj możesz pobrać pliki zlicz.php oraz | log.dat | ip.dat | dane.dat |
size [ 4.85 KB ]    pobrano: 1051

copyright © 2008-2010 by  int24  Design.  All Rights Reserved

 
WYSZUKAJ
Otwiera pomoc w nowym oknie
MENU
GENERATORY
Generator HTML
Generator LINKI
Generator POPUP
Generator MUZYKI
Generator BUTTON
Generator KURSORA
Generator ROLLOVER
Generator ADRES URL
Generator STATUSÓW
Generator HTML DO JS
Generator SCROLLBARA
Generator MARQUEE INPUT
SKRYPTY PHP

Kilka przykładów
zastosowania skryptów
PHP

Page Rank
Księga gości
Banowanie IP
Wyszukiwarka
Bramka e-mail
Licznik kliknięć
Token - Captcha
Licznik odwiedzin
Więcej znajdziesz w dziale WEBMASTER
SKANER ONLINE
REKLAMA

Masz ciekawą stronę,
fajnie wykonaną ?
chcesz się zareklamować
zapraszam do wymiany