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
 
Start new topic
Odpowiedzi
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Moze jakis parametr w kodzie, ktory bedzie okreslal czy linki sa jako index.php?strona=jakas czy jako jakas.php. Parametrem tym moze byc takie cos:
  1. <?php
  2. $param = 'strona';
  3. // lub
  4. $param = NULL;
  5. ?>

i potem w kodzie sprawdzasz czy $param is_null i jesli tak to przyjmujemy ze linki sa jak do tej pory czyli jakas.php, natomiast jesli ma jakas wartosci to jako nazwe strony podajesz wartosc zmiennej, ktorej nazwa jest wartoscia parametru (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ($$param - juz pomijajac $_GET i te sprawy). Moze wlasnie tak.
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: 13.10.2025 - 07:46