Autor | Zpráva | ||
---|---|---|---|
in Profil * |
#1 · Zasláno: 4. 12. 2011, 19:39:35
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 |
#2 · Zasláno: 4. 12. 2011, 19:53:51
chyba bude pravdepodobne v ukladani do souboru. Behem mazani pak zapisovani se muze skript prerusit. Soubor pak zustane prazdny. Databaze!
|
||
Darker Profil |
#3 · Zasláno: 4. 12. 2011, 19:55:44
Aspoň to okomentuj buď tak laskav. Některé chyby zjistíš, když dáš na začátek kódu error_reporting(E_ALL);
|
||
in Profil * |
#4 · Zasláno: 4. 12. 2011, 20:04:58
Aha, a bylo by složité to předělat do databáze?
|
||
unlucky Profil |
#5 · Zasláno: 4. 12. 2011, 20:06:48
nejlepsi bude pouzit nejakou free sluzbu treba netagent, blueaboard, toplist
|
||
HajekJirka Profil |
#6 · Zasláno: 4. 12. 2011, 20:08:32
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 |
#7 · Zasláno: 4. 12. 2011, 20:41:30
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...
|
||
Časová prodleva: 12 let
|
0