Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [skrypt]licznik odwiedzin, proszę o ostre oceny + wskazówki
enigma
post
Post #1





Grupa: Zarejestrowani
Postów: 163
Pomógł: 0
Dołączył: 10.09.2006

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


Witam, php jak narazie tylko liznąłem i będzie to widać po skrypcie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Ma on służyć do robienia statystyk dla każdej podstrony, oraz zliczać ilość odwiedzin z każdej strony
skrypt musi operować na plikach (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
prosze o krytykę, tylko błagam nie śmiać się, wiem że tu wszystko będzie do krytykowania, ale jednoczesnie proszę o uwagi, jak coś można zrobić szybciej lepiej (w sumie już mam pomysł na dużo krótszy i szybszy skrypt), bo napewno pomoze mi to w nauce

  1. <?php
  2.  
  3.  function FunMeter ()
  4. {
  5.  if (!(file_exists('MetersFile/visits/')))//tworzy katalog na pliki ze statystykami
  6. mkdir ('MetersFile/visits/', 0700);
  7.  $file=($_SERVER['PHP_SELF']);//pobieram nazwe strony (pliku php) - plik z liczba odwiedzin nazywa się tak samo
  8.  $begin=strpos($file,'/') + 1;
  9.  $end=strpos($file,'.php');
  10.  $name=substr($file,$begin,$end-$begin);
  11.  if (!(file_exists('MetersFile/visits/'.$name.'.txt')))//tworzenie plików na statytyki
  12.  {
  13.  $file = fopen ('MetersFile/visits/'.$name.'.txt', 'w+');
  14.  fputs ($file,'0');
  15.  fclose ($file);
  16.  }
  17.  $file = fopen ('MetersFile/visits/'.$name.'.txt', 'r+'); 
  18.  if ($file)//odczytywanie i uaktualnianie statystyk
  19.  {
  20.  flock ($file, 2);
  21.  $visits = fgets($file, 20);
  22.  $visits++;
  23.  fseek ($file, 0);
  24.  fputs ($file, $visits);
  25.  flock ($file,3);
  26.  fclose ($file);
  27.  }
  28.  return $visits;//zwraca tablicę w celu późniejszego odczytania na stronie
  29. }
  30.  
  31.  
  32. function CatchIP ()
  33. {
  34.  if (!(file_exists('MetersFile/ip/')))//tworzy katalog na pliki ze statystykami
  35. mkdir ('MetersFile/ip/', 0700);
  36.  $ip = $_SERVER['REMOTE_ADDR']; 
  37.  $file=($_SERVER['PHP_SELF']);//pobieram nazwe strony (pliku php) - plik z liczba odwiedzin nazywa się tak samo
  38.  $begin=strpos($file,'/') + 1;
  39.  $end=strpos($file,'.php');
  40.  $name=substr($file,$begin,$end-$begin);
  41.  if (!(file_exists('MetersFile/ip/'.$name.'IP.txt')))//tworzenie plików na statytyki
  42.  {
  43.  $file = fopen ('MetersFile/ip/'.$name.'IP.txt', 'w+');
  44.  fputs ($file,'');
  45.  fclose ($file);
  46.  }
  47.  $file = fopen ('MetersFile/ip/'.$name.'IP.txt', 'r'); 
  48.  $i = 0;
  49.  if ($file)//odczyt i aktualizacja pliku
  50.  {
  51.  flock ($file, 2);
  52.  while(!feof($file))//zapis z pliku do tablicy, i zwiększenie liczby odwidzin dla konkretnej strony
  53.  {
  54.  $ip_count = fgets($file, 20);
  55.  $data = explode(':',$ip_count);
  56.  $ip_addr[$data[0]] = trim($data[1]);
  57.  }
  58. $ip_addr[$ip]++;
  59. fclose ($file);
  60. $klucze = array_keys($ip_addr);
  61. if(in_array($ip, $klucze))//nadpisanie zaktualizowanych informacji
  62. {
  63. $file = fopen ('MetersFile/ip/'.$name.'IP.txt', 'w+'); 
  64. for($x=0,$n=count($klucze);$x<$n;$x++)
  65. if($klucze[$x])
  66. fputs($file, $klucze[$x].':'.$ip_addr[$klucze[$x]]."rn");
  67. }
  68. else
  69. {$file = fopen ('MetersFile/ip/'.$name.'IP.txt', 'a');
  70. fputs($file, $ip.':1'."rn");}
  71.  fclose ($file);
  72.  }
  73.  return $ip_addr;//zwraca tablicę w celu późniejszego odczytania na stronie
  74. }
  75. ?>


całość razem z funkcjami odczytującymi można pobrać http://www.pawel-ryznar.yoyo.pl/Projekty/php/Visionsave.zip

Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie
- enigma   [skrypt]licznik odwiedzin   30.10.2006, 09:48:20
- - Adrian Staniszewski   twoja metoda obslugi podstron jest bledna.. PHP_SE...   30.10.2006, 11:33:33
|- - enigma   Cytat(Adrian Staniszewski @ 30.10.2006, 11...   30.10.2006, 11:39:36
- - bim2   I tu jest problem, bo ja np uzywam index.php?podst...   30.10.2006, 14:25:38
- - Adrian Staniszewski   Przeczytaj jeszcze raz mojego posta.. podstrona to...   30.10.2006, 15:21:42
- - enigma   hmm, a cobyście poradzili ?   1.11.2006, 17:36:08
- - phpion.com   Moze jakis parametr w kodzie, ktory bedzie okresla...   3.11.2006, 08:27:56
- - Adrian Staniszewski   Ja bym to wrzucil do klasy i w przypadku stron sta...   3.11.2006, 10:58:36
|- - enigma   Cytat(Adrian Staniszewski @ 3.11.2006, 10...   3.11.2006, 17:16:47
- - Adrian Staniszewski   Tak, ale niekoniecznie uzywaj # w nazwach plikow.....   3.11.2006, 18:41:27
|- - enigma   tak tyczy się też pierwszego pytanie z postu nr 9 ...   3.11.2006, 21:25:58
- - Adrian Staniszewski   Tak do obu pytan Skoro - a raczej jesli - przepi...   3.11.2006, 22:48:55
|- - enigma   Cytat(Adrian Staniszewski @ 3.11.2006, 22...   4.11.2006, 08:57:07
- - Adrian Staniszewski   dodaj mozliwosc dodania ciastka w zliczaniu odslon...   5.11.2006, 16:46:58
|- - enigma   Cytat(Adrian Staniszewski @ 5.11.2006, 16...   5.11.2006, 18:12:39
- - Adrian Staniszewski   no mozna powiedziec ze dobrze.. ale napisz cos wie...   5.11.2006, 20:18:23
|- - enigma   Cytat(Adrian Staniszewski @ 5.11.2006, 20...   6.11.2006, 19:34:30
- - Adrian Staniszewski   napewno nie framewroka raczej malego systemu, jed...   6.11.2006, 22:51:39
- - enigma   Cytat(Adrian Staniszewski @ 6.11.2006, 22...   7.11.2006, 09:26:01
- - bim2   Ja bym rozwiązał to tak jak w rapide. Mam taki sys...   7.11.2006, 20:27:12


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 - 18:32