počitadlo přístupů
9 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
nemáte někdo skript počitadla v PHP, které by návštěvníka zaznamenalo pouze jedenkrát za připojení??? Já mám počitadlo v php, ale počítá mě to pokaždé když tam přijdu v jednom připojení.
-
Tak si udělej vlastní... vždyť stačí obyč soubor a porovnávání Ip...
-
Presne tak, musis si u kazdyho kdo prijde zjistit IP adresu - promena $REMOTE_ADDR. a pricist pocitadlo jenom pokud s tehle adresy jeste nikdo neprisel.je ovsem nutny rozmyslet si jestli chces pocitat kazdou adresu jenom jednou za existenci vesmiru nebo treba testovani IPecka resetovat kazdej den.
-
na ziskani IP adresy pouzij: $ip = (isset($HTTP_X_FORWARDED_FOR)) ? $HTTP_X_FORWARDED_FOR : $REMOTE_ADDR; zapisuj napr do DB: IP, datum,prohlizec(myslim typ a verzi) pak jen kontroluj: jestli je IP v DB stejna jako ten kdo prisel tak zkontroluj datum jeho posledniho pristupu.. kdyz je to vic nez 24h tak ho pripocitej jestli je IP v DB stejna jako ten kdo prisel tak zkontroluj verzi prohlizece.. jestli ma nekdo stejnou IP a jinou verzi nez predtim je mozny je to nekdo ze stejne proxy ale na jinym PC (zlepsuje to vyslednou presnost) atd atd... kdyz v DB jeste neni tak ho tam zapis.. by Master
-
<? $datum = "datum.dat"; $pocitadloDnes = "dnes.dat"; $pocitadloVse = "vse.dat"; $ipLog = "ip.dat"; if (!File_Exists ($datum)) {exit("Nelze najít datum.dat");} if (!File_Exists ($pocitadloDnes)) {exit("Nelze najít dnes.dat");} if (!File_Exists ($ipLog)) {exit("Nelze najít ip.dat");} $klika = fopen($datum, 'r'); if ($klika == false) {exit("Nelze otevřít Datum na vstup.");} $stareDatum = fread($klika, filesize( $datum )); fclose($klika); $noveDatum = date("j/m/Y"); if ($noveDatum != $stareDatum) {resetujNovyDen ($noveDatum, $stareDatum, $datum, $pocitadloDnes, $ipLog);} if (!stejnyNavstevnik($ipLog)) { inkrementujPocitadlo ($pocitadloVse); inkrementujPocitadlo ($pocitadloDnes); } $dnes = ziskejPocitadlo($pocitadloDnes); $vse = ziskejPocitadlo($pocitadloVse); function stejnyNavstevnik($ipLog) { $newIP = getenv ("REMOTE_ADDR"); $klika = fopen($ipLog, 'r'); if ($klika == false) {exit("Nelze otevřít IP Log na vstup.");} $data = fread($klika, filesize($ipLog)); fclose($klika); $lines = explode ("\n", $data); if (in_array ($newIP, $lines)) {return true;} $klika = fopen ($ipLog, 'a' ); if ($klika == false) {exit("Nelze otevřít IP Log na rozšíření.");} fwrite ($klika, "$newIP\n"); fclose ($klika); return false; } function resetujNovyDen ($noveDatum, $stareDatum, $datum, $pocitadloDnes, $ipLog) { $klika = fopen($datum, 'w'); if ($klika == false) {exit("Nelze otevřít Datum na výstup.");} fwrite ($klika, "$noveDatum" ); fclose($klika); $klika = fopen($pocitadloDnes, 'w'); if ($klika == false) {exit("Nelze otevřít Dnešní datum na výstup.");} fwrite ($klika, "0" ); fclose($klika); $klika = fopen( $ipLog, 'w' ); if ($klika == false) {exit("Nelze otevřít IP Log na výstup.");} fwrite ($klika, "" ); fclose($klika); } function inkrementujPocitadlo ($soubor) { $klika = fopen( $soubor, 'r' ); if ($klika == false) {exit("Nelze otevřít Počítadlo na vstup.");} $data = fread($klika, filesize($soubor)); fclose($klika); $data ++; $klika = fopen($soubor, 'w'); if ($klika == false) {exit("Nelze otevřít počítadlo na výstup.");} fwrite ($klika, "$data" ); fclose($klika); } function ziskejPocitadlo ($soubor) { $klika = fopen($soubor, 'r'); if ($klika == false) {exit("Nelze otevřít počítadlo na vstup.");} $data = fread($klika, filesize($soubor)); fclose($klika); return $data; } ?> Denní počet: <?echo $dnes?> Celkem přístupů: <?echo $vse?> ----------------------------------------------------------------------- Tohle pocitadlo pocita pouze 1 ip za den a vzdycky na konci dne (00:00) vsechny smaze a jede od znova. A tady je v praxi http://fallout.wz.cz/stats.php3
-
>Tohle pocitadlo pocita pouze 1 ip za den a vzdycky na konci dne (00:00) vsechny smaze a jede od znova. -to jako smaze uplne vsechny nebo jen ty z predchoziho dne?? z toho zdrojaku se to tezko cte.. je v tom celkem bordel
-
Vymaže se jenom "datum.dat", "dnes.dat", "ip.dat". "vse.dat" se nevymaže, tam se zapisuje celkový počet přístupů. "ip.dat" zapisuje ip adresy pod sebe a o půl noci se smaže "dnes.dat" zapisuje počet denních přístupů a o půl noci se smaže "datum.dat" zapíšuje aktuální datum a o půl noci se smaže
-
o pul nuci se tezko neco smaze.. to by jsi musel mit crona a toho jiste nikde nemas
-
když se zmení datum a to se stane v 00:00 a načte se soubor "datum.dat"(už se starým(včerejším) datem), a pak když se nove datum nerovná staremu datu if ($noveDatum != $stareDatum) {resetujNovyDen ($noveDatum, $stareDatum, $datum, $pocitadloDnes, $ipLog);} tak se vymažou soubory "datum.dat", "dnes.dat", "ip.dat".