Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] prosty licznik, zabezpieczyć przed botami
Lejto
post
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
 
Start new topic
Odpowiedzi
Lejto
post
Post #2





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

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


ok, dzięki za link, no ale chce go zabezpieczyć tylko prze botami np. tymi które podałem, mam na początku kodu tablice przeciwko botom ale widocznie wszystkiego nie blokuje
Go to the top of the page
+Quote Post

Posty w temacie


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 - 21:45