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
Adrian Staniszew...
post
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 17.10.2006
Skąd: Łódź

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


twoja metoda obslugi podstron jest bledna.. PHP_SELF nie zwraca calego linku..dostajesz postac typu.. index.php, news.html.. itp..

a co gdy moje linki maja postac np. index.php?go=news, news.php5?id=12 ?

musisz inaczej pobieraz linki, a nawet wtedy nie bedziesz mial pewnosci czy jestes na innej podstronie czy tez po prostu zmieniles jakas wartosc lub wyslales jakis parametr zmieniajacy jakas drobna czesc www, ale nie zmieniajacej tresci podstrony..
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: 4.10.2025 - 14:41