Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Licznik PHP- jak zliczać na każdej stronie?
ReBeLs513
post
Post #1





Grupa: Zarejestrowani
Postów: 233
Pomógł: 0
Dołączył: 14.03.2010
Skąd: Dessau

Ostrzeżenie: (0%)
-----


Pobrałem skrypt licznika z tej strony: http://www.int24.com.pl/skrypty_php/licznik.php Co mam zrobić, aby licznik wliczał odwiedziny, jak wejdzie się na inną stronę niż index.php? Dodać na każdej stronie
  1. <?php
  2. include("zlicz.php");
  3. ?>
(IMG:style_emoticons/default/questionmark.gif)

Ten post edytował ReBeLs513 16.07.2010, 13:44:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
koreja
post
Post #2





Grupa: Zarejestrowani
Postów: 120
Pomógł: 22
Dołączył: 15.07.2008
Skąd: Raniżów/Rzeszów

Ostrzeżenie: (0%)
-----


Tym skryptem tego nie zrobisz, dlatego że jest on odporny na przeładowywanie strony, co zresztą jest napisane na stronie skryptu. Czyli nieważne w ilu miejscach go dasz, i tak zliczy tylko raz.
Go to the top of the page
+Quote Post
thomson89
post
Post #3





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Rozumiem, że chcesz zliczyć ilość odwiedzin użyszkodników, niezależnie na której stronie będą?

Dodajesz na każdej stronie (przykład na plikach):
  1. file_put_contents('licz.txt', file_get_contents('licz.txt') + 1);

Oczywiście dodajesz zależność względem ciasteczek. Ustawiasz je np. na 10 min lub na 1h zależy to tylko od ciebie.

Ten post edytował thomson89 16.07.2010, 13:57:13
Go to the top of the page
+Quote Post
ReBeLs513
post
Post #4





Grupa: Zarejestrowani
Postów: 233
Pomógł: 0
Dołączył: 14.03.2010
Skąd: Dessau

Ostrzeżenie: (0%)
-----


Właśnie chodzi mi o to, aby zliczał na każdej stronie liczbę wejść jak jedno, czyli jak ktoś wejdzie w index.php a potem w plik.php (lub na odwrót) to zostanie zliczone tylko jedno wejście a po np. 12 godzinach znowu wejście z tego IP zliczy. Bo aktualnie mam licznik, który liczy ilość wejść na każdą podstronę a tego nie chcę.

@thomson- właśnie o to mi chodzi. Ma to wyglądać tak:

  1. <?php
  2. setcookie ("TestCookie", $value);
  3. setcookie ("TestCookie", $value,time()+43200); /* traci ważność za godzinę */
  4. setcookie ("TestCookie", $value,time()+43200, "/~rasmus/", ".utoronto.ca", 1);
  5.  
  6. file_put_contents('../l/licz.txt', file_get_contents('../l/licz.txt') + 1);
  7. ?>
(IMG:style_emoticons/default/questionmark.gif)

Ten post edytował ReBeLs513 16.07.2010, 14:11:58
Go to the top of the page
+Quote Post
thomson89
post
Post #5





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Nic prostszego, teraz tylko dodajesz if'a przed tą linijkę co ja dałem. W if'ie sprawdź czy ciasteczko NIE istnieje ("!isset($_COOKIE['TestCookie'])") a jeżeli prawda (czyli wchodzi po 1h) to zwiększasz ilość wejść w pliku.
Go to the top of the page
+Quote Post
ReBeLs513
post
Post #6





Grupa: Zarejestrowani
Postów: 233
Pomógł: 0
Dołączył: 14.03.2010
Skąd: Dessau

Ostrzeżenie: (0%)
-----


nie wiem jak to połączyć (IMG:style_emoticons/default/haha.gif) ... po tym: !isset($_COOKIE['TestCookie']) dać tą Twoją linijkę?
Go to the top of the page
+Quote Post
thomson89
post
Post #7





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Trochę podstaw, człowieku...

  1. if(!isset($_COOKIE['byl'])) //sprawdza ciasteczko
  2. {
  3. file_put_contents('../l/licz.txt', file_get_contents('../l/licz.txt') + 1); //dolicza wizytę
  4. setcookie ('byl', 'tak',time()+60*60*24); //traci ważność po 24h
  5. }
Go to the top of the page
+Quote Post
ReBeLs513
post
Post #8





Grupa: Zarejestrowani
Postów: 233
Pomógł: 0
Dołączył: 14.03.2010
Skąd: Dessau

Ostrzeżenie: (0%)
-----


Wymyśliłem co innego... ale nie działa:o
Na każdej podstronie mam kod include:
  1. <?php include('HTML/subskrypcja.php'); ?>

a pliku subskrypcja.php mam m.in. taki kod licznika:
  1.  
  2.  
  3. //w pliku w ktorym zagniezdzasz musisz ustawic session_start
  4.  
  5.  
  6. //licznik
  7.  
  8. $l_liczb = 3; //ilosc wyswietlanych liczb
  9. $tryb = 1;
  10. // jesli ma byc licznik graficzny wpisz 1
  11. // jesli zwykly to napisz 2
  12. // jesli ma byc niewidoczny wpisz 3
  13.  
  14. $img_dir = "PHP/licznik/img"; //katalog z grafikami
  15. $img_roz = "jpg"; // rozszerzenie pliku np gif, jpg, bmp
  16.  
  17. //zablokowane IP:
  18. //poprostu dodawaj takie linie \/
  19. $lock_ip[] = "212.77.100.101";
  20.  
  21. $l_liczb -= 1;
  22.  
  23. for($r = 0; $r <= 9; $r++) {
  24. if($tryb == 1)
  25. $nim[$r] = "<img SRC=\"$img_dir/$r.$img_roz\">";
  26. elseif($tryb==2)
  27. $nim[$r] = "$r";
  28. }
  29.  
  30. if(file_exists("licznik.num")) {
  31. $fp = fopen("licznik.num", "r");
  32. flock($fp, 1);
  33. $num = fgets($fp, "1000");
  34.  
  35. if(!isset($_SESSION['ip'])) {
  36.  
  37. for($q = 0; $q < count($lock_ip); $q++) {
  38. if($lock_ip[$q] != $_SERVER['REMOTE_ADDR']) {
  39. $bool = true;
  40. }
  41. }
  42.  
  43. if($bool) {
  44. $num++;
  45. $ip = $_SERVER['REMOTE_ADDR'];
  46. $_SESSION['ip'] = $ip;
  47. }
  48. }
  49.  
  50. flock($fp, 3);
  51. fclose($fp);
  52.  
  53. $numi = strval($num);
  54.  
  55. $fpw = fopen("licznik.num", "w");
  56. flock($fpw, 1);
  57. fwrite($fpw, $num);
  58. flock($fpw, 3);
  59. fclose($fpw);
  60.  
  61. $ll_liczb = $l_liczb - strlen($num);
  62. if($tryb != 3) {
  63. for($qw = 0; $qw <= $ll_liczb; $qw++) {
  64. echo($nim[0]);
  65. }
  66.  
  67.  
  68. for($qw = 0; $qw <= strlen($num); $qw++) {
  69. echo($nim[$numi[$qw]]);
  70. }
  71. }
  72. }
  73. else {
  74. $fpw = fopen("licznik.num", "w");
  75. flock($fpw, 1);
  76. fwrite($fpw, 1);
  77. flock($fpw, 3);
  78. fclose($fpw);
  79.  
  80. $ll_liczb = $l_liczb - 1;
  81. if($tryb != 3) {
  82. for($qw = 0; $qw <= $ll_liczb; $qw++) {
  83. echo($nim[0]);
  84. }
  85.  
  86. echo($nim[1]);
  87. }
  88.  
  89. }
  90. echo"<!-- Dolph-Guest-Counter Copyright by Pathfinder(pathfinder@pf.pl) || <a href="http://pathfinder.eia.pl" target="_blank">http://pathfinder.eia.pl</a> -->";
  91. ?>

Dlaczego za każdym kliknięciem lub odświeżeniem strony nalicza mi odwiedziny?(IMG:style_emoticons/default/questionmark.gif) Jak to zablokować, aby ponownie zliczał po 12h? Może jest jakiś błąd w kodzie?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 04:44