15-05-2012, 03:40
Witam!
Mam problem z licznikiem odwiedzin. Poczytałem trochę na forach, poszperałem w google i widzę że temat już był wałkowany. Ja jednak nie mogę sobie z nim poradzić. Na mojej stronie www.tomi-cars.pl wyskakuje błąd:
Kod licznika to:kod php jest dodany tak: <html><head>...</head><body>(kod php)(kod xhtml)</body></html>.
Kodowanie ustawione na utf-8 bez BOM.
Jak widać kombinowałem z ob_start(); i ob_end_flush();. Jestem zielony w temacie php więc jak ktoś byłby chętny napisać słowo podpowiedzi to w miarę zrozumiałym językiem za co bardzo dziękuję!
Mam problem z licznikiem odwiedzin. Poczytałem trochę na forach, poszperałem w google i widzę że temat już był wałkowany. Ja jednak nie mogę sobie z nim poradzić. Na mojej stronie www.tomi-cars.pl wyskakuje błąd:
Cytat:Warning: Cannot modify header information - headers already sent by (output started at /home/l06974lc/public_html/tomi-cars.pl/index.php:7) in /home/l06974lc/public_html/tomi-cars.pl/index.php on line 72Błąd dotyczy linijki 72 w której jest:
Kod PHP:
setcookie("licznik", "zliczono", time()+polnoc()+1); /* cookie blokuje licznik do konca doby */
Kod PHP:
<?php
ob_start();
function polnoc() /* odmierza ile sekund od danej chwili jest do konca dnia*/
{
$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((!isset($_COOKIE['licznik'])) && (!strstr($_SERVER['HTTP_REFERER'], "www.tomi-cars.pl")))
{
$plik = fopen("licznik.txt", "r");
$tekst = fread($plik, filesize("licznik.txt"));
$dane = explode(";", $tekst);
fclose($plik);
$plik = fopen("licznik.txt", "w");
flock($plik, 2);
$dane[0]++;
fwrite($plik, "$dane[0];", 15);
flock($plik, 3);
fclose($plik);
/*LICZNIK DZIENNY - MADE BY WOWO */
$data = date("Y-m-d"); /*zmienna przechowująca dzisiejszą datę*/
$dzienny=fopen("dzienny.txt","r"); /*otwieramy plik, plik jest formatu yyyy-mm-dd:liczba:yyyy-mm-dd:liczba, gdzie pierwsza data jest data dzisiejsza, pierwsza liczba liczbą odwiedzin dzisiaj, druga data, to data wczorajsza, druga liczba to liczba odwiedzin wczoraj*/
$dzienny_tekst =fread($dzienny, filesize("dzienny.txt")); /*czytamy caly plik do zmiennej dzienny_tekst*/
$dane2 = explode(":", $dzienny_tekst); /*rozbijamy wczytany tekst z pliku, na daty i liczby klikniec - calosc bedzie w tabeli*/
fclose($dzienny); /*zamykamy plik, ktory otwarlismy tylko do odczytu*/
if($dane2[0]==$data) /*jesli w pierwsza data w pliku jest data dzisiejsza to dzialamy jak nizej*/
{ $dane2[1]++; /*zwiekszamy liczbe klikniec dzisiaj*/
$dzienny=fopen("dzienny.txt","w"); /*otwieramy plik do zapisu*/
flock($dzienny, 2); /* blokujemy plik przed zapisem*/
fwrite($dzienny, "$dane2[0]:$dane2[1]:$dane2[2]:$dane2[3]", 30); /*zapisujemy calość do pliku */
flock($dzienny, 3); /* odblokowujemy plik */
fclose($dzienny); /* zamykamy plik */
}
else/* jeśli pierwsza data w pliku nie jest dzisiejszą datą */
{ $dane2[2]=$dane2[0]; /* druga date w pliku ustawiamy, ta ktora byla do tej pory pierwsza*/
$dane2[3]=$dane2[1]; /* druga liczbe odwiedzin ustawiamy, ta ktora byla do tej pory pierwsza*/
$dane2[0]=$data; /* ustawiamy pierwsza date w pliku na date dzisiejsza*/
$dane2[1]=1; /* liczbe klikniec ustawiamy na 1 bo sa to pierwsze odwiedziny tego dnia*/
$dzienny=fopen("dzienny.txt","w"); /*otwieramy plik do zapisu*/
flock($dzienny, 2); /*blokada zapisu*/
fwrite($dzienny, "$dane2[0]:$dane2[1]:$dane2[2]:$dane2[3]", 30); /*zapisujemy calość do pliku */
flock($dzienny, 3);/* odblokowujemy plik */
fclose($dzienny);/* zamykamy plik */
}
setcookie("licznik", "zliczono", time()+polnoc()+1); /* cookie blokuje licznik do konca doby */
}else{
$plik = fopen("licznik.txt", "r"); /* obsluga licznika stalego*/
$tekst = fread($plik, filesize("licznik.txt"));
$dane = explode(";", $tekst);
fclose($plik);
$dzienny=fopen("dzienny.txt","r"); /* obsluga licznika dziennego*/
$dzienny_tekst =fread($dzienny, filesize("dzienny.txt"));
$dane2 = explode(":", $dzienny_tekst);
fclose($dzienny);
}
ob_end_flush();
?>
Kodowanie ustawione na utf-8 bez BOM.
Jak widać kombinowałem z ob_start(); i ob_end_flush();. Jestem zielony w temacie php więc jak ktoś byłby chętny napisać słowo podpowiedzi to w miarę zrozumiałym językiem za co bardzo dziękuję!