![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 23.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam bardzo serdecznie. Mam taki kod licznika:
Kod <!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-type" content="text/html;charset=ISO-8859-2"> <meta name="Keywords" content=" futsal sport +, futsal sport plus, futsal sport, futsal malopolska, futsal małopolska, liga futsalu, futsal"> <title>Futsal Sport+</title> <link rel="Shortcut icon" href="obrazki/icon.png" /> <link rel="Stylesheet" href="style.css" type="text/css"> </head> <body> <?php function polnoc() { $teraz = date("H:i:s"); $czas = explode(":", $teraz); $godziny = 23-$czas[0]; $minuty = 59-$czas[1]; $sekundy = 59-$czas[2]; $waznosc = $godziny*3600 + $minuty*60 + $sekundy; return $waznosc; } if((!strstr($_SERVER['HTTP_REFERER'], "www.futsalsportplus.pl"))) { $plik = fopen("js/licznik.txt", "r"); $tekst = fread($plik, filesize("js/licznik.txt")); $dane = explode(";", $tekst); fclose($plik); $plik = fopen("js/licznik.txt", "w"); flock($plik, 2); $dane[0]++; fwrite($plik, "$dane[0];", 15); flock($plik, 3); fclose($plik); $data = date("Y-m-d"); $dzienny=fopen("js/dzienny.txt","r"); $dzienny_tekst =fread($dzienny, filesize("js/dzienny.txt")); $dane2 = explode(":", $dzienny_tekst); fclose($dzienny); $data2 = date("Y-m"); $miesiac=fopen("js/miesiac.txt","r"); $miesiac_tekst =fread($miesiac, filesize("js/miesiac.txt")); $dane3 = explode(":", $miesiac_tekst); fclose($miesiac); if($dane2[0]==$data) { $dane2[1]++; $dzienny=fopen("js/dzienny.txt","w"); flock($dzienny, 2); fwrite($dzienny, "$dane2[0]:$dane2[1]:$dane2[2]:$dane2[3]", 30); flock($dzienny, 3); fclose($dzienny); } else { $dane2[2]=$dane2[0]; $dane2[3]=$dane2[1]; $dane2[0]=$data; $dane2[1]=1; $dzienny=fopen("js/dzienny.txt","w"); flock($dzienny, 2); fwrite($dzienny, "$dane2[0]:$dane2[1]:$dane2[2]:$dane2[3]", 30); flock($dzienny, 3); fclose($dzienny); } if($dane3[0]==$data2) { $dane3[1]++; $miesiac=fopen("js/miesiac.txt","w"); flock($miesiac, 2); fwrite($miesiac, "$dane3[0]:$dane3[1]:$dane3[2]:$dane3[3]", 30); flock($miesiac, 3); fclose($miesiac); } else { $dane3[2]=$dane3[0]; $dane3[3]=$dane3[1]; $dane3[0]=$data2; $dane3[1]=1; $miesiac=fopen("js/miesiac.txt","w"); flock($miesiac, 2); fwrite($miesiac, "$dane3[0]:$dane3[1]:$dane3[2]:$dane3[3]", 30); flock($miesiac, 3); fclose($miesiac); } } else { $plik = fopen("js/licznik.txt", "r"); $tekst = fread($plik, filesize("js/licznik.txt")); $dane = explode(";", $tekst); fclose($plik); $dzienny=fopen("js/dzienny.txt","r"); $dzienny_tekst =fread($dzienny, filesize("js/dzienny.txt")); $dane2 = explode(":", $dzienny_tekst); fclose($dzienny); $miesiac=fopen("js/miesiac.txt","r"); $miesiac_tekst =fread($miesiac, filesize("js/miesiac.txt")); $dane3 = explode(":", $miesiac_tekst); fclose($miesiac); } ?> <center> <div class="licznik"> <table width="100%" cellpadding=0><tr> <td width="80px"><img src="obrazki/futsal1.png" width=80 height=90/></td> <td> <table width="150px" cellpadding=0><tr><td colspan=2 style="text-align:center"><font size=+1><center>Licznik odwiedzin:</center></font></td></tr> <tr><td style="text-align:left" width="100">Dzisiaj:</td><td style="text-align:right"><b><?php echo($dane2[1]); ?></b></td></tr> <tr><td style="text-align:left" width="100">W tym miesiącu:</td><td style="text-align:right"><b><?php echo($dane3[1]); ?></b></td></tr> <tr><td style="text-align:left" width="100">Wszystkich:</td><td style="text-align:right"><b><?php echo($dane[0]); ?></b></td></tr></table></td></tr></table></div></center> </body></html> I niby wszystko pieknie wyglada ale niestety jest duuuzy problem z dzialaniem tego licznika, a mianowicie: Gdy wejdę na stronę i zaczne trzymac F5(odswiezanie) to licznik wariuje: resetuje sie losowa liczba w pliku txt ktory tez jest losowy. Raz resetuje sie w dziennym, raz w miesieczny, a jeszcze kiedy indziej w ogolnym. Ale nie psuje sie tylko na F5 zauwazylem ze jak juz jest troche duzo odwiedzin to sie resetuje. czasem jest tak ze mam dzienny: 1500 a ogolny sie resetuje i jest np. 10. Czy może mi ktoś doradzić, co musze zmienic w tym kodzie zeby prawidlowo dzialal i nie robil takich numerów?? Z góry dziękuję za pomoc |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 273 Pomógł: 21 Dołączył: 28.11.2010 Ostrzeżenie: (10%) ![]() ![]() |
sesje?
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 23.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
czyli co dokladnie?? bo niezbyt zrozumialem
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Nie możesz zapisywać tego do bazy danych ?
Z sumujesz sobie potem odpowiednią przestrzeń dat np. wg. miesiąca, roku, sumy. Możesz to zrobić nawet tak jak Ty masz: nazwy kolumn tabeli _> dzien miesiac rok ogolny id data_aktualizacji Updatujesz tylko jeden wiersz tabeli tylko każda z aktualną wartość +1
Potem tylko sprawdzasz który dzien już jest: i umieszczasz IF który resetuje tylko daną wartość np. dzien = 0 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 23.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
wiem ze moznaby bylo na bazie danych, ale jesli o to chodzi to ja jednak wolalbym to miec na plikach txt i dlatego wlasnie napisalem z zapytaniem o to co tutaj moze powodowac to resetowanie...
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli się tak dzieje jak Ty mówisz, to po sprawdzałbym sobie dane które zapisujesz do pliku.
Jakie dane i kiedy są false. Pewnie jakaś zmienna nie dostaje wartości. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 23.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
tylko ze tu nie ma dokladnie kiedy... bo rozne zmienne w roznym czasie chyba dostaja false i dlatego idzie reset i nie wiem od czego zalezy kiedy on sie resetuje i jak naprawic
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
To dlatego musisz sprawdzić co wchodzi i co wychodzi.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 23.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
juz kilka razy sprawdzalem i wyglada to calkiem wporzadku...
czy kktos jeszcze moze cos doradzic?? a jeśli nie to pomógłby mi ktoś napisać ten cały licznik (ogolny dzienny i miesieczny) w oparciu o mysql bo w temacie z mysqlem sie niezbyt pewnie czuje... |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Licznik tekstowy zawsze będzie wątpliwie działał jeśli czas wysyłania żądań przekroczy czas zapisu do pliku
![]() Licznik odsłon to żadna filozofia, zapisujesz do bazy ip +czas a potem na podstawie tego co jakiś czas generujesz statystyki, skryptów na różne liczniki jest masa, wystarczy poszukać: Temat: Scalenie zapytan i optymalizacja skryptu - tylko używać na własne ryzyko ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 23.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
OK. Dzięki za link do tematu coś będę kombinował... Bo może rzeczywiście lepiej bedzie na baze:D
A mam jeszcze takie pytanie: Jak poustawiałeś pola w tabelach?? Chodzi mi o: ip, czas, osłon, wizyt Ten post edytował qarles 13.02.2011, 13:55:49 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.06.2025 - 13:36 |