Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] prosty licznik, zabezpieczyć przed botami
Lejto
post 4.05.2008, 19:30:41
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


Mam kod prostego licznika opartego na txt. Ostatnio dziwiły mnie statystyki wiedz postanowiłem napisać prosty skrypt który powie mi jaki jest host danego gościa itp. I taki hosty mam:
crawl-66-249-73-20.googlebot.com, mail.explodelink.com itp mam jakieś zabezpieczenie w moim skrypcie licznika ale to nie skutkuje.
  1. <?
  2. $Bots = array(
  3.  'Alexa'  => 'ia_archiver',
  4.  'Ask Jeeves' => 'ask jeeves',
  5.  'Teoma'  => 'teoma',
  6.  'Baidu Spider'  => 'baiduspider',
  7.  'cURL'  => 'curl',
  8.  'GameSpy' => 'gamespyhttp',
  9.  'Googlebot-Image' => 'googlebot-image',
  10.  'Gigabot' => 'gigabot',
  11.  'Googlebot'  => 'googlebot',
  12.  'Grub'  => 'grub',
  13.  'Inktomi Slurp'  => 'slurp',
  14.  'msnbot' => 'msnbot',
  15.  'AltaVista'  => 'scooter',
  16.  'Yahoo!' => 'yahoo!',
  17.  'Lycos'  => 'lycos',
  18.  'Whatuseek' => 'whatuseek',
  19.  );
  20. foreach($Bots as $bot => $designation)
  21. {
  22.  if(eregi($designation, $_SERVER['HTTP_USER_AGENT']))
  23.  $b0t = $b0t . 1;
  24. }
  25. if($b0t=='' or $bot=='0')
  26. {
  27. $foo = file('licznik.txt');
  28. $ex = @explode('|', $foo[0]);
  29.  
  30. if(!isset($_COOKIE['licz_x']))
  31. {
  32. ((date('n') == @$ex[2])) ?
  33. $ex[3]++ :
  34. $ex[3] = 1;
  35. $ex[2] = date('n');
  36.  
  37. ((date('d') == @$ex[0])) ?
  38. $ex[1]++ :
  39. $ex[1] = 1;
  40. $ex[0] = date('d');
  41.  
  42. }
  43.  
  44. if(!isset($_COOKIE['licz_xO']))
  45. {
  46. (empty($ex[4])) ? $ex[4] = 1 : $ex[4]++;
  47. }
  48.  
  49. $write = fopen('licznik.txt', 'w');
  50. flock($write, LOCK_EX);
  51. fwrite($write, join('|',$ex));
  52. flock($write, LOCK_UN);
  53. fclose($write);
  54.  
  55.  
  56. $hours = date('G');
  57. $minutes = date('i');
  58. $hoursleft = 23 - $hours;
  59. $minutesleft = 59 - $minutes;
  60. $hs = $hoursleft * 3600;
  61. $ms = $minutesleft * 60;
  62. $timeleft = $hs + $ms;
  63. if(!isset($_COOKIE['licz_x']) || !isset($_COOKIE['licz_x0']))
  64. {
  65. setcookie('licz_x','x',time()+$timeleft);
  66. setcookie('licz_xO','x',time()+$timeleft);
  67. }
  68.  
  69. print '<table border="0" cellpadding="0" width="" cellspacing="0" bordercolor="#9CACAD" ><tr><td>';
  70. print '<font size=2px>Dzisiaj: ' . $ex[1]; ?> <br><?
  71. print ' Ten miesiąc: ' . $ex[3];?> <br><?
  72. print ' Wszystkich odsłon: ' . $ex[4]; ?> <br><?
  73. }
  74. print ' Gości: '.$ile2;
  75. print ' </font></td></tr></table>';

Czy w tablicy z botami dodać adresy url czy co/?

Ten post edytował Lejto 4.05.2008, 19:31:33


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:10