Autor Zpráva
in
Profil *
Dobrý den,

kdysi dávno jsem si stáhl počítadlo přístupů se zobrazením online uživatelů. Počítadlo fungovalo více než rok bez problémů, ale teď se z ničeho nic samo vynulovalo. Bylo tam cca 700 přístupů. S php začínám, zkoušel jsem hledat kde by mohla být chyba, ale nic moc jsem nenašel.

Nemohl by mi s tím prosím někdo pomoct kde by mohla být chyba?

Děkuji.

tady je zdroják:

<?php
        $slozka = "./include/pocitadlo/";

        if((!file_exists("$slozka/data.txt")) || (!file_exists("$slozka/ip.txt"))) {
                die("Jeden z datových souborů nebyl nalezen.");
        }

        $ip = $_SERVER[REMOTE_ADDR];
        
        $ban_ip = Array("81.0.202.2");

        $adresy = explode("\n", file_get_contents("$slozka/ip.txt"));
        $radku = count($adresy);
        $cas = time();
        $online = 1;
        $plus = true;
        
        for($i = 0; $i < $radku; $i++) {
                $adresa = explode(":", $adresy[$i]);
                if(($ip == $adresa[0]) && ($cas < $adresa[1])) { $plus = false; }
                if(($ip != $adresa[0]) && ($cas < $adresa[1])) {
                        $zapis .= $adresa[0].":".$adresa[1]."\n";
                        foreach($ban_ip as $adresa) {
                                if($ip == $adresa) {
                                        $ban = 1;
                                        break;
                                }
                        }
                        if($ban == 0) {
                                $online++;
                        }
                }
        }
        
        $cas = $cas + 600;
        $zapis .= $ip.":".$cas."\n";
        
        $fp = fopen("$slozka/ip.txt", "w+");
        fwrite($fp, $zapis);
        fclose($fp);
        
        $fp = fopen("$slozka/data.txt","r");
        $data = fread($fp, filesize("$slozka/data.txt"));
        $data = unserialize($data);
        if($plus) {
                $ban = 0;
                foreach($ban_ip as $adresa) {
                        if($ip == $adresa) {
                                $ban = 1;
                                break;
                        }
                }
                if($ban == 0) {
                        $data[celkem]++;
                        $data[dnes]++;
                }
        }
        
        $den = date("w");
        
        if($den != $data[den]) {
                $data[dnes] = 1;
        }
        
        $data[den] = $den;
        $celkem = $data[celkem];
        $dnes = $data[dnes];

        $data = serialize($data);

        fclose($fp);

        $fp = fopen("$slozka/data.txt", "w+");
        fwrite($fp, $data);
        fclose($fp);
        
        $fp = fopen("$slozka/nastaveni.txt", "r");
        $opt = fread($fp, filesize("$slozka/nastaveni.txt"));
        $opt = unserialize($opt);
        
?>
unlucky
Profil
chyba bude pravdepodobne v ukladani do souboru. Behem mazani pak zapisovani se muze skript prerusit. Soubor pak zustane prazdny. Databaze!
Darker
Profil
Aspoň to okomentuj buď tak laskav. Některé chyby zjistíš, když dáš na začátek kódu error_reporting(E_ALL);
in
Profil *
Aha, a bylo by složité to předělat do databáze?
unlucky
Profil
nejlepsi bude pouzit nejakou free sluzbu treba netagent, blueaboard, toplist
HajekJirka
Profil
in:
bylo by složité to předělat do databáze?
Tak to nepředělávej a stáhni si jiné. Na internetu jsou jich stovky.
Např.
Darker
Profil
Předělat to do databáze by bylo naprosto triviální. Místo explode tam bude mysql_fetch_array a misto file_get_contents tam bude mysql_query...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0