Ostatnio na potrzeby swojej strony napisałem skrypt, który zlicza unikalnych użytkowników. Wizyty zliczane są po IP a zapisywane do pliku - proste rozwiązanie

  1. <?php
  2.  
  3. $guests_txt = "guests.txt";
  4. $count_txt = "count.txt";
  5.  
  6. //sprawdzenie IP
  7. if ($_SERVER['HTTP_X_FORWARDED_FOR']) {
  8. $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  9. }
  10. else {
  11. $ip = $_SERVER['REMOTE_ADDR'];
  12. }
  13.  
  14.  
  15. $mystring = file_get_contents($guests_txt);
  16. $findme = $ip;
  17. $pos = strpos($mystring, $findme);
  18.  
  19. if ($pos === false) {
  20. $present = false; // adresu nie ma w bazie
  21. } else {
  22. $present = true; // adres jest już w bazie
  23. }
  24.  
  25.  
  26. if (!$present) {
  27. // jeśli nie ma, otwieramy plik i dopisujemy adres IP guesta
  28. $dbase = fopen($guests_txt, "a");
  29. fwrite($dbase, $ip . "\n");
  30. fclose($dbase);
  31.  
  32. // oraz zwiększamy licznik odwiedzin o 1
  33. $dbase = fopen($count_txt, "r+");
  34. $licznik = fread($dbase, filesize($count_txt));
  35. $licznik++;
  36. file_put_contents($count_txt, $licznik);
  37. fclose($dbase);
  38. } else {
  39. // natomiast jeśli adres jest już w pliku - tylko pobieramy ilość odwiedzin
  40. $dbase = fopen($count_txt, "r");
  41. $licznik = fread($dbase, filesize($count_txt));
  42. fclose($dbase);
  43. }
  44.  
  45. echo $licznik; // liczba unikalnych wejść
  46.  
  47. ?>


pomyślałem że się podzielę, może się komuś przyda - przy okazji może ktoś ma jakieś zastrzeżenia etc tongue.gif Jeśli coś można zrobić lepiej czekam na uwagi, dopiero się uczę PHP smile.gif