home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 April / PCWorld_2005-04_cd.bin / akce / web / phpnuke / PHP-Nuke-7.5.exe / html / includes / counter.php < prev    next >
PHP Script  |  2004-01-29  |  5KB  |  111 lines

  1. <?php
  2.  
  3. /************************************************************************/
  4. /* PHP-NUKE: Web Portal System                                          */
  5. /* ===========================                                          */
  6. /*                                                                      */
  7. /* Copyright (c) 2002 by Francisco Burzi                                */
  8. /* http://phpnuke.org                                                   */
  9. /*                                                                      */
  10. /* Enhanced with NukeStats Module Version 1.0                           */
  11. /* ==========================================                           */
  12. /* Copyright ⌐2002 by Harry Mangindaan (sens@indosat.net) and           */
  13. /*                    Sudirman (sudirman@akademika.net)                 */
  14. /* http://www.nuketest.com                                              */
  15. /*                                                                      */
  16. /* This program is free software. You can redistribute it and/or modify */
  17. /* it under the terms of the GNU General Public License as published by */
  18. /* the Free Software Foundation; either version 2 of the License.       */
  19. /************************************************************************/
  20.  
  21. if (eregi("counter.php",$_SERVER['PHP_SELF'])) {
  22.     Header("Location: index.php");
  23.     die();
  24. }
  25. global $prefix, $db;
  26.  
  27. /* Get the Browser data */
  28.  
  29. if((ereg("Nav", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Gold", $_SERVER["HTTP_USER_AGENT"])) || (ereg("X11", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Mozilla", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Netscape", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("MSIE", $_SERVER["HTTP_USER_AGENT"]) AND (!ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])))) $browser = "Netscape";
  30. elseif(ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) $browser = "MSIE";
  31. elseif(ereg("Lynx", $_SERVER["HTTP_USER_AGENT"])) $browser = "Lynx";
  32. elseif(ereg("Opera", $_SERVER["HTTP_USER_AGENT"])) $browser = "Opera";
  33. elseif(ereg("WebTV", $_SERVER["HTTP_USER_AGENT"])) $browser = "WebTV";
  34. elseif(ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])) $browser = "Konqueror";
  35. elseif((eregi("bot", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Google", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Slurp", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Scooter", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Spider", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Infoseek", $_SERVER["HTTP_USER_AGENT"]))) $browser = "Bot";
  36. else $browser = "Other";
  37.  
  38. /* Get the Operating System data */
  39.  
  40. if(ereg("Win", $_SERVER["HTTP_USER_AGENT"])) $os = "Windows";
  41. elseif((ereg("Mac", $_SERVER["HTTP_USER_AGENT"])) || (ereg("PPC", $_SERVER["HTTP_USER_AGENT"]))) $os = "Mac";
  42. elseif(ereg("Linux", $_SERVER["HTTP_USER_AGENT"])) $os = "Linux";
  43. elseif(ereg("FreeBSD", $_SERVER["HTTP_USER_AGENT"])) $os = "FreeBSD";
  44. elseif(ereg("SunOS", $_SERVER["HTTP_USER_AGENT"])) $os = "SunOS";
  45. elseif(ereg("IRIX", $_SERVER["HTTP_USER_AGENT"])) $os = "IRIX";
  46. elseif(ereg("BeOS", $_SERVER["HTTP_USER_AGENT"])) $os = "BeOS";
  47. elseif(ereg("OS/2", $_SERVER["HTTP_USER_AGENT"])) $os = "OS/2";
  48. elseif(ereg("AIX", $_SERVER["HTTP_USER_AGENT"])) $os = "AIX";
  49. else $os = "Other";
  50.  
  51. /* Save on the databases the obtained values */
  52.  
  53. $db->sql_query("UPDATE ".$prefix."_counter SET count=count+1 WHERE (type='total' AND var='hits') OR (var='$browser' AND type='browser') OR (var='$os' AND type='os')");
  54. update_points(13);
  55.  
  56. /* Start Detailed Statistics */
  57.  
  58. $dot = date("d-m-Y-H");
  59. $now = explode ("-",$dot);
  60. $nowHour = $now[3];
  61. $nowYear = $now[2];
  62. $nowMonth = $now[1];
  63. $nowDate = $now[0];
  64. $sql = "SELECT year FROM ".$prefix."_stats_year WHERE year='$nowYear'";
  65. $resultyear = $db->sql_query($sql);
  66. $jml = $db->sql_numrows($resultyear);
  67. if ($jml <= 0) {
  68.     $sql = "INSERT INTO ".$prefix."_stats_year VALUES ('$nowYear','0')";
  69.     $db->sql_query($sql);
  70.     for ($i=1;$i<=12;$i++) {
  71.     $db->sql_query("INSERT INTO ".$prefix."_stats_month VALUES ('$nowYear','$i','0')");
  72.     if ($i == 1) $TotalDay = 31;
  73.     if ($i == 2) {
  74.         if (date("L") == true) {
  75.         $TotalDay = 29;
  76.         } else {
  77.         $TotalDay = 28;
  78.         }
  79.     }
  80.     if ($i == 3) $TotalDay = 31;
  81.     if ($i == 4) $TotalDay = 30;
  82.     if ($i == 5) $TotalDay = 31;
  83.     if ($i == 6) $TotalDay = 30;
  84.     if ($i == 7) $TotalDay = 31;
  85.     if ($i == 8) $TotalDay = 31;
  86.     if ($i == 9) $TotalDay = 30;
  87.     if ($i == 10) $TotalDay = 31;
  88.     if ($i == 11) $TotalDay = 30;
  89.     if ($i == 12) $TotalDay = 31;
  90.     for ($k=1;$k<=$TotalDay;$k++) {
  91.         $db->sql_query("INSERT INTO ".$prefix."_stats_date VALUES ('$nowYear','$i','$k','0')");
  92.     }
  93.     }
  94. }
  95.  
  96. $sql = "SELECT hour FROM ".$prefix."_stats_hour WHERE (year='$nowYear') AND (month='$nowMonth') AND (date='$nowDate')";
  97. $result = $db->sql_query($sql);
  98. $numrows = $db->sql_numrows($result);
  99.  
  100. if ($numrows <= 0) {
  101.     for ($z = 0;$z<=23;$z++) {
  102.     $db->sql_query("INSERT INTO ".$prefix."_stats_hour VALUES ('$nowYear','$nowMonth','$nowDate','$z','0')");
  103.     }
  104. }
  105.  
  106. $db->sql_query("UPDATE ".$prefix."_stats_year SET hits=hits+1 WHERE year='$nowYear'");
  107. $db->sql_query("UPDATE ".$prefix."_stats_month SET hits=hits+1 WHERE (year='$nowYear') AND (month='$nowMonth')");
  108. $db->sql_query("UPDATE ".$prefix."_stats_date SET hits=hits+1 WHERE (year='$nowYear') AND (month='$nowMonth') AND (date='$nowDate')");
  109. $db->sql_query("UPDATE ".$prefix."_stats_hour SET hits=hits+1 WHERE (year='$nowYear') AND (month='$nowMonth') AND (date='$nowDate') AND (hour='$nowHour')");
  110.  
  111. ?>