Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z licznikiem odwiedzin [php]
#1
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:
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 72
Błąd dotyczy linijki 72 w której jest:
Kod PHP:
setcookie("licznik""zliczono"time()+polnoc()+1); /* cookie blokuje licznik do konca doby */ 
Kod licznika to:
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($plikfilesize("licznik.txt"));
                
$dane explode(";"$tekst);
                
fclose($plik);
                
$plik fopen("licznik.txt""w");
                
flock($plik2);
                
$dane[0]++;
                
fwrite($plik"$dane[0];"15);
                
flock($plik3);
                
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($dziennyfilesize("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($dzienny2); /* blokujemy plik przed zapisem*/
                
fwrite($dzienny"$dane2[0]:$dane2[1]:$dane2[2]:$dane2[3]"30); /*zapisujemy calość do pliku */
          
flock($dzienny3); /* 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($dzienny2); /*blokada zapisu*/
          
fwrite($dzienny"$dane2[0]:$dane2[1]:$dane2[2]:$dane2[3]"30); /*zapisujemy calość do pliku */
          
flock($dzienny3);/* 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($plikfilesize("licznik.txt"));
                
$dane explode(";"$tekst);
                
fclose($plik);

                
$dzienny=fopen("dzienny.txt","r"); /* obsluga licznika dziennego*/
                
$dzienny_tekst =fread($dziennyfilesize("dzienny.txt"));
                
$dane2 explode(":"$dzienny_tekst);
                
fclose($dzienny);
        }
ob_end_flush();
?>
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ę!
Odpowiedz


Wiadomości w tym wątku
Problem z licznikiem odwiedzin [php] - przez junior211 - 15-05-2012, 03:40

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl