home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 October / CMCD1004.ISO / Software / Shareware / Programare / cnstats / install.php < prev    next >
Encoding:
PHP Script  |  2004-07-16  |  35.1 KB  |  567 lines

  1. <?php
  2. /******************************************************************************/
  3. /*                         (c) CN-Software CNStats                            */
  4. /*                                                                            */
  5. /*  Do not change this file, if you want to easily upgrade                    */
  6. /*  to newer versions of CNCat. To change appearance set up files: _top.php,  */
  7. /* _bottom.php and config.php                                                 */
  8. /*                                                                            */
  9. /******************************************************************************/
  10. error_reporting(E_ALL & ~E_NOTICE);
  11.  
  12. function CheckTable($name,$T) {
  13.  
  14.     $R=Array();
  15.     while (list ($key, $val) = each ($T)) $R[$val]=1;
  16.  
  17.     print "<LI>Checking table <B>".$name."</B>...";
  18.     $r=mysql_query("SHOW FIELDS FROM ".$name);
  19.     if (mysql_errno()!=0) {
  20.         print "<font color=red>".mysql_error()."</font><br><br><a href='javascript:history.back();'>Back</a>";
  21.         die();
  22.         }
  23.     $Y=Array();
  24.     while ($a=mysql_fetch_array($r)) $Y[$a[0]]=1;
  25.     if (count($R)!=count($Y)) {
  26.         print "<font color=red>Table ".$name." is not a CNStats 2.1 table.</font><br><br><a href='javascript:history.back();'>Back</a>";
  27.         die();
  28.         }
  29.     while (list ($key, $val) = each ($R)) {
  30.         if ($Y[$key]!=1) {
  31.         print "<font color=red>Table ".$name." is not a CNStats 2.1 table.</font><br><br><a href='javascript:history.back();'>Back</a>";
  32.         die();
  33.         }
  34.         }
  35.     print "Ok<br>";
  36.     }
  37.  
  38. $chost="http://".$HTTP_SERVER_VARS["HTTP_HOST"];
  39.  
  40. $CCODE[0]="<SCRIPT language=\"JavaScript\">
  41. cnsd=document;cnsd.cookie=\"b=b\";cnsc=cnsd.cookie?1:0;
  42. document.write('<img src=\"".$chost."/cnstats/cntg.php?c='+cnsc+'&r='+escape(cnsd.referrer)+'&p='+escape(cnsd.location)+'\" width=\"1\" height=\"1\" border=\"0\">');
  43. </SCRIPT><NOSCRIPT><img src=\"".$chost."/cnstats/cntg.php?468&c=0\" width=\"1\" height=\"1\" border=\"0\"></NOSCRIPT>";
  44.  
  45. $CCODE[1]="<SCRIPT language=\"JavaScript\">
  46. cnsd=document;cnsd.cookie=\"b=b\";cnsc=cnsd.cookie?1:0;
  47. document.write('<img src=\"".$chost."/cnstats/cntg.php?c='+cnsc+'&r='+escape(cnsd.referrer)+'&p='+escape(cnsd.location)+'\" width=\"88\" height=\"31\" border=\"0\">');
  48. </SCRIPT><NOSCRIPT><img src=\"".$chost."/cnstats/cntg.php?468&c=0\" width=\"88\" height=\"31\" border=\"0\"></NOSCRIPT>";
  49.  
  50. $CCODE[2]="<?
  51. include \"".str_replace("install.php","cnt.php",$HTTP_SERVER_VARS["SCRIPT_FILENAME"])."\";
  52. ?>";
  53.  
  54. $SOFTTITLE="CNStats 2.1";
  55. $TOTAL=2;
  56. $step=intval($HTTP_GET_VARS["step"]);
  57. if (isset($HTTP_POST_VARS["step"])) $step=intval($HTTP_POST_VARS["step"]);
  58.  
  59. $ispng=function_exists("imagepng")?1:0;
  60.  
  61. function install_title($c,$t,$text) {
  62.     $ttl="Step $c/$t - $text";
  63. ?>
  64. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  65. <HTML>
  66. <HEAD>
  67. <TITLE><?=$ttl;?></TITLE>
  68. <STYLE TYPE="text/css">
  69. <!--
  70. select,input,td,th,body {font-family:tahoma,sans-serif;font-size:11px;}
  71. a,a:visited {text-decoration:none;color:blue;}
  72. a:hover {text-decoration:underline}
  73. .t0 {background-color:#D4F3D7;}
  74. .t1 {background-color:#E7F9EA;}
  75. .t2 {background-color:#F2FCF4;}
  76. .ttl {width:100%;background:#B8E1BD;background-image:url("img/bg.gif");}
  77. .m0 {margin:0px;}
  78. //-->
  79. </STYLE>
  80. </HEAD>
  81. <BODY bgcolor="white">
  82. <table cellspacing=0 cellpadding=5 border=0 width=100%><tr><th class="ttl" style="text-align:left;"><?=$ttl;?></th></tr></table>
  83. <?
  84.     }
  85.  
  86. function install_bottom() {
  87.     print "</BODY></HTML>";
  88.     }
  89.  
  90. function printvars($A) {
  91.     while (list ($key, $val) = each ($A)) {
  92.         $val=StripSlashes(htmlspecialchars($val));
  93.         print "<input type=hidden name=\"$key\" value=\"$val\">\n";
  94.         }    
  95.     }
  96.  
  97. if ($HTTP_POST_VARS["step"]==1) {
  98.     $step=2;
  99.     $error="";
  100.     if (empty($HTTP_POST_VARS["sqlhost"])) $error.="<LI>MySql host was not set";
  101.     if (empty($HTTP_POST_VARS["dbname"])) $error.="<LI>Database name was not set";
  102.     if (empty($HTTP_POST_VARS["adminpassword2"])) $error.="<LI>Administrator's password was not set";
  103.     if ($HTTP_POST_VARS["adminpassword2"]!=$HTTP_POST_VARS["adminpassword1"]) $error.="<LI>Two copies of the administrator's password do not match";
  104.     $HTTP_POST_VARS["savelog"]=intval($HTTP_POST_VARS["savelog"]);
  105.     $HTTP_POST_VARS["type"]=intval($HTTP_POST_VARS["type"]);
  106.     if (strlen($HTTP_POST_VARS["inkcolor"])!=7 && $HTTP_POST_VARS["type"]==1) $error.="<LI>Colour was not set correctly. Colour should consist of 7 symbols and begin with "#"";
  107.     $HTTP_POST_VARS["adminpassword"]=$HTTP_POST_VARS["adminpassword2"];
  108.  
  109.     $STATS_CONF["regemail"]=$HTTP_POST_VARS["regemail"];
  110.     $STATS_CONF["regpassword"]=$HTTP_POST_VARS["regpassword"];
  111.     $STATS_CONF["sqlhost"]=$HTTP_POST_VARS["sqlhost"];
  112.     $STATS_CONF["sqluser"]=$HTTP_POST_VARS["sqluser"];
  113.     $STATS_CONF["sqlpassword"]=$HTTP_POST_VARS["sqlpassword"];
  114.     $STATS_CONF["dbname"]=$HTTP_POST_VARS["dbname"];
  115.     $STATS_CONF["adminpassword"]=$HTTP_POST_VARS["adminpassword"];
  116.     $STATS_CONF["adminpassword1"]=$HTTP_POST_VARS["adminpassword1"];
  117.     $STATS_CONF["adminpassword2"]=$HTTP_POST_VARS["adminpassword2"];
  118.     $COUNTER["savelog"]=$HTTP_POST_VARS["savelog"];
  119.     $COUNTER["type"]=$HTTP_POST_VARS["type"];
  120.     $COUNTER["exmask"]=$HTTP_POST_VARS["exmask"];
  121.     $COUNTER["exip"]=$HTTP_POST_VARS["exip"];
  122.  
  123.     $COUNTER["inkR"]=intval(hexdec(substr($HTTP_POST_VARS["inkcolor"],1,2)));
  124.     $COUNTER["inkG"]=intval(hexdec(substr($HTTP_POST_VARS["inkcolor"],3,2)));
  125.     $COUNTER["inkB"]=intval(hexdec(substr($HTTP_POST_VARS["inkcolor"],5,2)));
  126.  
  127.     if (empty($COUNTER["exip"])) $COUNTER["exip"]="0.0.0.0";
  128.     if (empty($COUNTER["exmask"])) $COUNTER["exmask"]="255.255.255.255";
  129.  
  130.     if (empty($error)) {
  131.         if (!@mysql_connect($STATS_CONF["sqlhost"],$STATS_CONF["sqluser"],$STATS_CONF["sqlpassword"])) $error.="<LI>Can not connect to database. (MySql message: ".mysql_error().")";
  132.         else {
  133.             install_title(2,$TOTAL,"Building configuration");
  134.             print "<UL>";
  135.             if (!@mysql_select_db($STATS_CONF["dbname"])) {
  136.                 print "<LI>Database <B>".$STATS_CONF["dbname"]."</B> not found...";
  137.                 print "<LI>Creating...";
  138.                 mysql_query("CREATE DATABASE `".$STATS_CONF["dbname"]."`");
  139.                 if (mysql_errno()!=0) {
  140.                     print "<font color='red'>".mysql_error()."</font><br><br><a href='javascript:history.back();'>Back</a>";
  141.                     exit;
  142.                     }
  143.                 print "Ok";
  144.                 if (!@mysql_select_db($STATS_CONF["dbname"])) { 
  145.                     print "<font color='red'>".mysql_error()."</font><br><br><a href='javascript:history.back();'>Back</a>";
  146.                     exit;
  147.                     }
  148.                 }
  149.             print "<LI>Database <B>".$STATS_CONF["dbname"]."</B> found...<br>";
  150.  
  151.             $r=mysql_query("SHOW tables") or die(mysql_error());
  152.             $f=0;while ($a=mysql_fetch_array($r)) {
  153.                 if ($a[0]=="cns_log" && $f==0) $f=1;
  154.                 if ($a[0]=="cns_filters") $f=2;
  155.                 }
  156.  
  157.             if ($f==2) {
  158.                 print "<LI>It seems that database is as in version 2.2\n";
  159.                 }
  160.             elseif ($f==1) {    
  161.                 $TBL=Array("language","mail_day","mail_email","mail_subject","mail_content","version","hints","gauge","percents","diagram","antialias","date_format","shortdate_format","datetime_format","datetimes_format","shortdm_format");
  162.                 CheckTable("cns_config",$TBL);
  163.                 $TBL=Array("hits","hosts","t_hits","t_hosts","last","visible","t_users","users");
  164.                 CheckTable("cns_counter",$TBL);
  165.                 $TBL=Array("hits","hosts","date","users");
  166.                 CheckTable("cns_counter_total",$TBL);
  167.                 $TBL=Array("txt");
  168.                 CheckTable("cns_exclude",$TBL);
  169.                 $TBL=Array("url","name");
  170.                 CheckTable("cns_goodies",$TBL);
  171.                 $TBL=Array("code","eng");
  172.                 CheckTable("cns_languages",$TBL);
  173.                 $TBL=Array("id","date","ip","type","page","proxy","agent","referer","uid","type1","res","depth","cookie","language","country");
  174.                 CheckTable("cns_log",$TBL);
  175.                 $TBL=Array("id","ip");
  176.                 CheckTable("cns_today",$TBL);
  177.                 $TBL=Array("ip1","ip2","title","id","uniqueid");
  178.                 CheckTable("cns_subnets",$TBL);
  179.  
  180.                 print "<LI>Updating table cns_config\n";
  181.                 mysql_query("ALTER table cns_config ADD column hash varchar(32) NOT NULL default ''") or die(mysql_error());
  182.  
  183.                 print "<LI>Creating table cns_filters\n";
  184.                 mysql_query("CREATE TABLE `cns_filters` (`id` int(11) NOT NULL auto_increment,`txt` varchar(255) NOT NULL default '',`title` varchar(255) NOT NULL default '',PRIMARY KEY  (`id`)) TYPE=MyISAM AUTO_INCREMENT=18;") or die(mysql_error());
  185.                 print "<LI>Creating table cns_size\n";
  186.                 mysql_query("CREATE TABLE `cns_size` (`date` date NOT NULL default '0000-00-00',`size` int(11) NOT NULL default '0',PRIMARY KEY  (`date`)) TYPE=MyISAM;") or die(mysql_error());
  187.     
  188.                 print "<LI>Inserting default data into cns_filters\n";
  189.                 mysql_query("INSERT INTO `cns_filters` VALUES (1, '-', 'English language');") or die(mysql_error());
  190.                 mysql_query("INSERT INTO `cns_filters` VALUES (2, '3|||0|||1|||en', 'English language');") or die(mysql_error());
  191.                 mysql_query("INSERT INTO `cns_filters` VALUES (3, '-', 'Exclude jumps from search systems');") or die(mysql_error());
  192.                 mysql_query("INSERT INTO `cns_filters` VALUES (4, '2|||0|||4|||http://yandex.ru/', 'Exclude jumps from search systems');") or die(mysql_error());
  193.                 mysql_query("INSERT INTO `cns_filters` VALUES (5, '2|||0|||4|||http://www.yandex.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  194.                 mysql_query("INSERT INTO `cns_filters` VALUES (6, '2|||0|||2|||google.*/search', 'Exclude jumps from search systems');") or die(mysql_error());
  195.                 mysql_query("INSERT INTO `cns_filters` VALUES (7, '2|||0|||4|||http://search.msn.', 'Exclude jumps from search systems');") or die(mysql_error());
  196.                 mysql_query("INSERT INTO `cns_filters` VALUES (8, '2|||0|||4|||http://search.yahoo.', 'Exclude jumps from search systems');") or die(mysql_error());
  197.                 mysql_query("INSERT INTO `cns_filters` VALUES (9, '2|||0|||4|||http://www.ya.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  198.                 mysql_query("INSERT INTO `cns_filters` VALUES (10, '2|||0|||4|||http://ya.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  199.                 mysql_query("INSERT INTO `cns_filters` VALUES (11, '2|||0|||4|||http://sm.aport.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  200.                 mysql_query("INSERT INTO `cns_filters` VALUES (12, '2|||0|||4|||http://search.rambler.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  201.                 mysql_query("INSERT INTO `cns_filters` VALUES (13, '2|||0|||4|||http://go*.mail.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  202.                 mysql_query("INSERT INTO `cns_filters` VALUES (14, '2|||0|||4|||http://www.altavista.com', 'Exclude jumps from search systems');") or die(mysql_error());
  203.                 mysql_query("INSERT INTO `cns_filters` VALUES (15, '2|||0|||4|||http://altavista.com', 'Exclude jumps from search systems');") or die(mysql_error());
  204.                 mysql_query("INSERT INTO `cns_filters` VALUES (16, '2|||0|||4|||http://ie*.rambler.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  205.                 mysql_query("INSERT INTO `cns_filters` VALUES (17, '2|||0|||4|||http://results.metabot.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  206.     
  207.                 }
  208.             /* Installing */
  209.             else {
  210.                 print "<LI>Creating table cns_config\n";
  211.                 mysql_query("CREATE TABLE `cns_config` (`language` text,`mail_day` tinyint(4) default '1',`mail_email` varchar(32) default NULL,`mail_subject` varchar(64) default '[%d.%m.%Y] CNStats report',`mail_content` tinyint(4) default '1',`version` int(11) NOT NULL default '20',`hints` int(11) NOT NULL default '1',`gauge` int(11) NOT NULL default '1',`percents` int(11) NOT NULL default '0',`diagram` tinyint(4) NOT NULL default '1',`antialias` tinyint(4) NOT NULL default '1',`date_format` varchar(32) NOT NULL default '',`shortdate_format` varchar(32) NOT NULL default '',`datetime_format` varchar(32) NOT NULL default '',`datetimes_format` varchar(32) NOT NULL default '',`shortdm_format` varchar(32) NOT NULL default '',`hash` varchar(32) NOT NULL default '') TYPE=MyISAM;") or die(mysql_error());
  212.                 print "<LI>Creating table cns_counter\n";
  213.                 mysql_query("CREATE TABLE `cns_counter` (`hits` bigint(20) default NULL,`hosts` bigint(20) default NULL,`t_hits` bigint(20) default NULL,`t_hosts` bigint(20) default NULL,`last` datetime default NULL,`visible` int(11) default '1',`t_users` int(11) default NULL,`users` int(11) default NULL) TYPE=MyISAM;;") or die(mysql_error());
  214.                 print "<LI>Creating table cns_counter_total\n";
  215.                 mysql_query("CREATE TABLE `cns_counter_total` (`hits` int(11) default NULL,`hosts` int(11) default NULL,`date` datetime default NULL,`users` int(11) default NULL,KEY `idx` (`date`)) TYPE=MyISAM;;") or die(mysql_error());
  216.                 print "<LI>Creating table cns_countries\n";
  217.                 mysql_query("CREATE TABLE `cns_countries` (`ip1` int(10) unsigned NOT NULL default '0',`ip2` int(10) unsigned NOT NULL default '0',`c` smallint(5) unsigned NOT NULL default '0',PRIMARY KEY  (`ip1`,`ip2`)) TYPE=MyISAM;;") or die(mysql_error());
  218.                 print "<LI>Creating table cns_exclude\n";
  219.                 mysql_query("CREATE TABLE `cns_exclude` (`txt` text) TYPE=MyISAM;;") or die(mysql_error());
  220.                 print "<LI>Creating table cns_goodies\n";
  221.                 mysql_query("CREATE TABLE `cns_goodies` (`url` text,`name` text) TYPE=MyISAM;;") or die(mysql_error());
  222.                 print "<LI>Creating table cns_languages\n";
  223.                 mysql_query("CREATE TABLE `cns_languages` (`code` char(2) NOT NULL default '',`eng` text,PRIMARY KEY  (`code`),KEY `code_idx` (`code`)) TYPE=MyISAM;;") or die(mysql_error());
  224.                 print "<LI>Creating table cns_log\n";
  225.                 mysql_query("CREATE TABLE `cns_log` (`id` int(11) NOT NULL auto_increment,`date` datetime NOT NULL default '2001-01-01 00:00:00',`ip` int(11) default NULL,`type` smallint(6) NOT NULL default '0',`page` text NOT NULL,`proxy` int(11) default NULL,`agent` text NOT NULL,`referer` text NOT NULL,`uid` int(11) NOT NULL default '0',`type1` smallint(6) NOT NULL default '0',`res` varchar(10) NOT NULL default '',`depth` smallint(6) NOT NULL default '0',`cookie` smallint(6) NOT NULL default '0',`language` varchar(32) NOT NULL default '',`country` smallint(5) unsigned NOT NULL default '0',PRIMARY KEY  (`id`),KEY `idx3` (`uid`),KEY `idx1` (`date`)) TYPE=MyISAM;;") or die(mysql_error());
  226.                 print "<LI>Creating table cns_subnets\n";
  227.                 mysql_query("CREATE TABLE `cns_subnets` (`ip1` int(11) NOT NULL default '0',`ip2` int(11) NOT NULL default '0',`title` text NOT NULL,`id` int(11) NOT NULL default '0',`uniqueid` int(11) NOT NULL auto_increment,PRIMARY KEY  (`uniqueid`),KEY `id` (`id`)) TYPE=MyISAM;;") or die(mysql_error());
  228.                 print "<LI>Creating table cns_today\n";
  229.                 mysql_query("CREATE TABLE `cns_today` (`id` int(11) NOT NULL auto_increment,`ip` text,PRIMARY KEY  (`id`)) TYPE=MyISAM;;") or die(mysql_error());
  230.                 print "<LI>Creating table cns_filters\n";
  231.                 mysql_query("CREATE TABLE `cns_filters` (`id` int(11) NOT NULL auto_increment,`txt` varchar(255) NOT NULL default '',`title` varchar(255) NOT NULL default '',PRIMARY KEY  (`id`)) TYPE=MyISAM AUTO_INCREMENT=18;") or die(mysql_error());
  232.                 print "<LI>Creating table cns_size\n";
  233.                 mysql_query("CREATE TABLE `cns_size` (`date` date NOT NULL default '0000-00-00',`size` int(11) NOT NULL default '0',PRIMARY KEY  (`date`)) TYPE=MyISAM;") or die(mysql_error());
  234.  
  235.                 print "<LI>Inserting default data\n";
  236.                 mysql_query("INSERT INTO `cns_counter` VALUES (0, 0, 0, 0, NOW(), 1, 0, 0);");
  237.                 mysql_query("INSERT INTO `cns_config` VALUES ('english', 0, '', '[%d.%m.%Y] CNStats report', 0, 0, 1, 1, 1, 1, 1, '', '', '', '', '', '');");
  238.  
  239.                 mysql_query("INSERT INTO `cns_filters` VALUES (1, '-', 'English language');") or die(mysql_error());
  240.                 mysql_query("INSERT INTO `cns_filters` VALUES (2, '3|||0|||1|||en', 'English language');") or die(mysql_error());
  241.                 mysql_query("INSERT INTO `cns_filters` VALUES (3, '-', 'Exclude jumps from search systems');") or die(mysql_error());
  242.                 mysql_query("INSERT INTO `cns_filters` VALUES (4, '2|||0|||4|||http://yandex.ru/', 'Exclude jumps from search systems');") or die(mysql_error());
  243.                 mysql_query("INSERT INTO `cns_filters` VALUES (5, '2|||0|||4|||http://www.yandex.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  244.                 mysql_query("INSERT INTO `cns_filters` VALUES (6, '2|||0|||2|||google.*/search', 'Exclude jumps from search systems');") or die(mysql_error());
  245.                 mysql_query("INSERT INTO `cns_filters` VALUES (7, '2|||0|||4|||http://search.msn.', 'Exclude jumps from search systems');") or die(mysql_error());
  246.                 mysql_query("INSERT INTO `cns_filters` VALUES (8, '2|||0|||4|||http://search.yahoo.', 'Exclude jumps from search systems');") or die(mysql_error());
  247.                 mysql_query("INSERT INTO `cns_filters` VALUES (9, '2|||0|||4|||http://www.ya.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  248.                 mysql_query("INSERT INTO `cns_filters` VALUES (10, '2|||0|||4|||http://ya.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  249.                 mysql_query("INSERT INTO `cns_filters` VALUES (11, '2|||0|||4|||http://sm.aport.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  250.                 mysql_query("INSERT INTO `cns_filters` VALUES (12, '2|||0|||4|||http://search.rambler.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  251.                 mysql_query("INSERT INTO `cns_filters` VALUES (13, '2|||0|||4|||http://go*.mail.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  252.                 mysql_query("INSERT INTO `cns_filters` VALUES (14, '2|||0|||4|||http://www.altavista.com', 'Exclude jumps from search systems');") or die(mysql_error());
  253.                 mysql_query("INSERT INTO `cns_filters` VALUES (15, '2|||0|||4|||http://altavista.com', 'Exclude jumps from search systems');") or die(mysql_error());
  254.                 mysql_query("INSERT INTO `cns_filters` VALUES (16, '2|||0|||4|||http://ie*.rambler.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  255.                 mysql_query("INSERT INTO `cns_filters` VALUES (17, '2|||0|||4|||http://results.metabot.ru', 'Exclude jumps from search systems');") or die(mysql_error());
  256.  
  257.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ab','Abkhazian');");
  258.                 mysql_query("INSERT INTO `cns_languages` VALUES ('af','Afrikaans');");
  259.                 mysql_query("INSERT INTO `cns_languages` VALUES ('sq','Albanian');");
  260.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ar','Arabic');");
  261.                 mysql_query("INSERT INTO `cns_languages` VALUES ('hy','Armenian');");
  262.                 mysql_query("INSERT INTO `cns_languages` VALUES ('az','Azerbaijani');");
  263.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ba','Bashkir');");
  264.                 mysql_query("INSERT INTO `cns_languages` VALUES ('eu','Basque');");
  265.                 mysql_query("INSERT INTO `cns_languages` VALUES ('bn','Bengali');");
  266.                 mysql_query("INSERT INTO `cns_languages` VALUES ('bi','Bislama');");
  267.                 mysql_query("INSERT INTO `cns_languages` VALUES ('br','Breton');");
  268.                 mysql_query("INSERT INTO `cns_languages` VALUES ('bg','Bulgarian');");
  269.                 mysql_query("INSERT INTO `cns_languages` VALUES ('my','Burmese');");
  270.                 mysql_query("INSERT INTO `cns_languages` VALUES ('be','Byelorussian');");
  271.                 mysql_query("INSERT INTO `cns_languages` VALUES ('km','Cambodian');");
  272.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ca','Catalan');");
  273.                 mysql_query("INSERT INTO `cns_languages` VALUES ('zh','Chinese');");
  274.                 mysql_query("INSERT INTO `cns_languages` VALUES ('co','Corsican');");
  275.                 mysql_query("INSERT INTO `cns_languages` VALUES ('hr','Croatian');");
  276.                 mysql_query("INSERT INTO `cns_languages` VALUES ('cs','Czech');");
  277.                 mysql_query("INSERT INTO `cns_languages` VALUES ('da','Danish');");
  278.                 mysql_query("INSERT INTO `cns_languages` VALUES ('nl','Dutch');");
  279.                 mysql_query("INSERT INTO `cns_languages` VALUES ('en','English');");
  280.                 mysql_query("INSERT INTO `cns_languages` VALUES ('eo','Esperanto');");
  281.                 mysql_query("INSERT INTO `cns_languages` VALUES ('et','Estonian');");
  282.                 mysql_query("INSERT INTO `cns_languages` VALUES ('fo','Faeroese');");
  283.                 mysql_query("INSERT INTO `cns_languages` VALUES ('fj','Fiji');");
  284.                 mysql_query("INSERT INTO `cns_languages` VALUES ('fi','Finnish');");
  285.                 mysql_query("INSERT INTO `cns_languages` VALUES ('fr','French');");
  286.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ka','Georgian');");
  287.                 mysql_query("INSERT INTO `cns_languages` VALUES ('de','German');");
  288.                 mysql_query("INSERT INTO `cns_languages` VALUES ('el','Greek');");
  289.                 mysql_query("INSERT INTO `cns_languages` VALUES ('kl','Greenlandic');");
  290.                 mysql_query("INSERT INTO `cns_languages` VALUES ('gn','Guarani');");
  291.                 mysql_query("INSERT INTO `cns_languages` VALUES ('iw','Hebrew');");
  292.                 mysql_query("INSERT INTO `cns_languages` VALUES ('hi','Hindi');");
  293.                 mysql_query("INSERT INTO `cns_languages` VALUES ('hu','Hungarian');");
  294.                 mysql_query("INSERT INTO `cns_languages` VALUES ('is','Icelandic');");
  295.                 mysql_query("INSERT INTO `cns_languages` VALUES ('in','Indonesian');");
  296.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ik','Inupiak');");
  297.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ga','Irish');");
  298.                 mysql_query("INSERT INTO `cns_languages` VALUES ('it','Italian');");
  299.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ja','Japanese');");
  300.                 mysql_query("INSERT INTO `cns_languages` VALUES ('jw','Javanese');");
  301.                 mysql_query("INSERT INTO `cns_languages` VALUES ('kn','Kannada');");
  302.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ks','Kashmiri');");
  303.                 mysql_query("INSERT INTO `cns_languages` VALUES ('kk','Kazakh');");
  304.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ky','Kirghiz');");
  305.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ko','Korean');");
  306.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ku','Kurdish');");
  307.                 mysql_query("INSERT INTO `cns_languages` VALUES ('lo','Laothian');");
  308.                 mysql_query("INSERT INTO `cns_languages` VALUES ('la','Latin');");
  309.                 mysql_query("INSERT INTO `cns_languages` VALUES ('lv','Latvian');");
  310.                 mysql_query("INSERT INTO `cns_languages` VALUES ('lt','Lithuanian');");
  311.                 mysql_query("INSERT INTO `cns_languages` VALUES ('mk','Macedonian');");
  312.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ms','Malay');");
  313.                 mysql_query("INSERT INTO `cns_languages` VALUES ('mt','Maltese');");
  314.                 mysql_query("INSERT INTO `cns_languages` VALUES ('gv','Manx-Gaelic');");
  315.                 mysql_query("INSERT INTO `cns_languages` VALUES ('mo','Moldavian');");
  316.                 mysql_query("INSERT INTO `cns_languages` VALUES ('mn','Mongolian');");
  317.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ne','Nepali');");
  318.                 mysql_query("INSERT INTO `cns_languages` VALUES ('no','Norwegian');");
  319.                 mysql_query("INSERT INTO `cns_languages` VALUES ('pl','Polish');");
  320.                 mysql_query("INSERT INTO `cns_languages` VALUES ('pt','Portuguese');");
  321.                 mysql_query("INSERT INTO `cns_languages` VALUES ('rm','Rhaeto-Romance');");
  322.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ro','Romanian');");
  323.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ru','Russian');");
  324.                 mysql_query("INSERT INTO `cns_languages` VALUES ('gd','Scots-Gaelic');");
  325.                 mysql_query("INSERT INTO `cns_languages` VALUES ('sr','Serbian');");
  326.                 mysql_query("INSERT INTO `cns_languages` VALUES ('sh','Serbo-Croatian');");
  327.                 mysql_query("INSERT INTO `cns_languages` VALUES ('tn','Setswana');");
  328.                 mysql_query("INSERT INTO `cns_languages` VALUES ('sn','Shona');");
  329.                 mysql_query("INSERT INTO `cns_languages` VALUES ('sk','Slovak');");
  330.                 mysql_query("INSERT INTO `cns_languages` VALUES ('sl','Slovenian');");
  331.                 mysql_query("INSERT INTO `cns_languages` VALUES ('so','Somali');");
  332.                 mysql_query("INSERT INTO `cns_languages` VALUES ('es','Spanish');");
  333.                 mysql_query("INSERT INTO `cns_languages` VALUES ('sv','Swedish');");
  334.                 mysql_query("INSERT INTO `cns_languages` VALUES ('tg','Tajik');");
  335.                 mysql_query("INSERT INTO `cns_languages` VALUES ('tt','Tatar');");
  336.                 mysql_query("INSERT INTO `cns_languages` VALUES ('th','Thai');");
  337.                 mysql_query("INSERT INTO `cns_languages` VALUES ('bo','Tibetan');");
  338.                 mysql_query("INSERT INTO `cns_languages` VALUES ('to','Tonga');");
  339.                 mysql_query("INSERT INTO `cns_languages` VALUES ('tr','Turkish');");
  340.                 mysql_query("INSERT INTO `cns_languages` VALUES ('tk','Turkmen');");
  341.                 mysql_query("INSERT INTO `cns_languages` VALUES ('uk','Ukrainian');");
  342.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ur','Urdu');");
  343.                 mysql_query("INSERT INTO `cns_languages` VALUES ('uz','Uzbek');");
  344.                 mysql_query("INSERT INTO `cns_languages` VALUES ('vi','Vietnamese');");
  345.                 mysql_query("INSERT INTO `cns_languages` VALUES ('cy','Welsh');");
  346.                 mysql_query("INSERT INTO `cns_languages` VALUES ('wo','Wolof');");
  347.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ji','Yiddish');");
  348.                 mysql_query("INSERT INTO `cns_languages` VALUES ('yi','Yiddish');");
  349.                 mysql_query("INSERT INTO `cns_languages` VALUES ('zu','Zulu');");
  350.                 mysql_query("INSERT INTO `cns_languages` VALUES ('aa','Afar');");
  351.                 mysql_query("INSERT INTO `cns_languages` VALUES ('am','Amharic');");
  352.                 mysql_query("INSERT INTO `cns_languages` VALUES ('as','Assamese');");
  353.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ay','Aymara');");
  354.                 mysql_query("INSERT INTO `cns_languages` VALUES ('dz','Bhutani');");
  355.                 mysql_query("INSERT INTO `cns_languages` VALUES ('bh','Bihari');");
  356.                 mysql_query("INSERT INTO `cns_languages` VALUES ('fa','Farsi');");
  357.                 mysql_query("INSERT INTO `cns_languages` VALUES ('fy','Frisian');");
  358.                 mysql_query("INSERT INTO `cns_languages` VALUES ('gl','Galician');");
  359.                 mysql_query("INSERT INTO `cns_languages` VALUES ('gu','Gujarati');");
  360.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ha','Hausa');");
  361.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ia','Interlingua');");
  362.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ie','Interlingue');");
  363.                 mysql_query("INSERT INTO `cns_languages` VALUES ('iu','Inuktitut');");
  364.                 mysql_query("INSERT INTO `cns_languages` VALUES ('rw','Kinyarwanda');");
  365.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ln','Lingala');");
  366.                 mysql_query("INSERT INTO `cns_languages` VALUES ('mg','Malagasy');");
  367.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ml','Malayalam');");
  368.                 mysql_query("INSERT INTO `cns_languages` VALUES ('rn','Kirundi');");
  369.                 mysql_query("INSERT INTO `cns_languages` VALUES ('mi','Maori');");
  370.                 mysql_query("INSERT INTO `cns_languages` VALUES ('mr','Marathi');");
  371.                 mysql_query("INSERT INTO `cns_languages` VALUES ('na','Nauru');");
  372.                 mysql_query("INSERT INTO `cns_languages` VALUES ('oc','Occitan');");
  373.                 mysql_query("INSERT INTO `cns_languages` VALUES ('or','Oriya');");
  374.                 mysql_query("INSERT INTO `cns_languages` VALUES ('om','Oromo');");
  375.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ps','Pashto');");
  376.                 mysql_query("INSERT INTO `cns_languages` VALUES ('pa','Punjabi');");
  377.                 mysql_query("INSERT INTO `cns_languages` VALUES ('qu','Quechua');");
  378.                 mysql_query("INSERT INTO `cns_languages` VALUES ('sm','Samoan');");
  379.                 mysql_query("INSERT INTO `cns_languages` VALUES ('sg','Sangro');");
  380.                 mysql_query("INSERT INTO `cns_languages` VALUES ('sa','Sanskrit');");
  381.                 mysql_query("INSERT INTO `cns_languages` VALUES ('st','Sesotho');");
  382.                 mysql_query("INSERT INTO `cns_languages` VALUES ('sd','Sindhi');");
  383.                 mysql_query("INSERT INTO `cns_languages` VALUES ('si','Singhalese');");
  384.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ss','Siswati');");
  385.                 mysql_query("INSERT INTO `cns_languages` VALUES ('sw','Swahili');");
  386.                 mysql_query("INSERT INTO `cns_languages` VALUES ('tl','Tagalog');");
  387.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ta','Tamil');");
  388.                 mysql_query("INSERT INTO `cns_languages` VALUES ('te','Telugu');");
  389.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ts','Tsonga');");
  390.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ti','Tigrinya');");
  391.                 mysql_query("INSERT INTO `cns_languages` VALUES ('tw','Twi');");
  392.                 mysql_query("INSERT INTO `cns_languages` VALUES ('ug','Uighur');");
  393.                 mysql_query("INSERT INTO `cns_languages` VALUES ('xh','Xhosa');");
  394.                 mysql_query("INSERT INTO `cns_languages` VALUES ('yo','Yoruba');");
  395.                 mysql_query("INSERT INTO `cns_languages` VALUES ('he','Hebrew');");
  396.                 }
  397.  
  398.             print "<LI>All necessary changes completed successfully.\n";
  399.             print "</UL>";
  400.  
  401. ?>
  402. <br>
  403. <table cellspacing=1 cellpadding=6 border=0 align=center width=650><form action=install.php method=post>
  404. <tr><th class='ttl' colspan=2>File: config.php</th></tr>
  405. <tr class=t1><td>
  406. <P>Follow the instructions, described below and <b>make sure</b> that you delete the file <code>install.php</code> from the directory <code>./cnstats</code> after the installation is over
  407. </td></tr>
  408. <tr class=t2><td>
  409. <?
  410. $config="
  411. <?
  412. \$STATS_CONF[\"dbname\"]=\"".$STATS_CONF["dbname"]."\";
  413. \$STATS_CONF[\"sqlhost\"]=\"".$STATS_CONF["sqlhost"]."\";
  414. \$STATS_CONF[\"sqluser\"]=\"".$STATS_CONF["sqluser"]."\";
  415. \$STATS_CONF[\"sqlpassword\"]=\"".$STATS_CONF["sqlpassword"]."\";
  416.  
  417. \$STATS_CONF[\"adminpassword\"]=\"".md5($STATS_CONF["adminpassword"])."\";
  418. \$STATS_CONF[\"sqlserver\"]=\"MySql\";
  419.  
  420. // E-Mail, submitted for CNStats purchase
  421. \$STATS_CONF[\"cnsoftwarelogin\"]=\"".$STATS_CONF["regemail"]."\";
  422.  
  423. // Members Area password (http://www.cn-software.com/members/)
  424. \$STATS_CONF[\"cnsoftwarepassword\"]=\"".$STATS_CONF["regpassword"]."\";
  425.  
  426. // Storing up the statistics.
  427.  
  428. \$COUNTER[\"savelog\"]=".$COUNTER["savelog"].";
  429.  
  430. // The following params are activated if you use graphical
  431. // counter.
  432.  
  433. // Type of the counter
  434. //
  435. // 0 - transparent GIF (1x1 pixel) 
  436. // 1 - PNG button 88x31. Button background is stored in file button.png.
  437. //     (Presence of GD library is required, see http://www.php.net/manual/en/ref.image.php)
  438. // 2 - built in PHP code
  439. \$COUNTER[\"type\"]=".$COUNTER["type"].";
  440.  
  441. // If the image is not transparent the following three params define color
  442. // of symbols on the counter (respectively components R,G and B)
  443.  
  444. \$COUNTER[\"inkR\"]=".$COUNTER["inkR"].";
  445. \$COUNTER[\"inkG\"]=".$COUNTER["inkG"].";
  446. \$COUNTER[\"inkB\"]=".$COUNTER["inkB"].";
  447.  
  448. // Do not count jumps from network excludeip/excludemask
  449.  
  450. \$COUNTER[\"excludeip\"]=\"".$COUNTER["exip"]."\";
  451. \$COUNTER[\"excludemask\"]=\"".$COUNTER["exmask"]."\";
  452.  
  453. \$COUNTER[\"timeoffset\"]=0;
  454.  
  455. // Turn off CNStats authorization
  456. //
  457. // yes - turn off
  458. // no - do not turn off
  459.  
  460. \$COUNTER[\"disablepassword\"]=\"no\";
  461.  
  462. // Send errors reports to E-Mail (E-Mail is set
  463. // in option \$STATS_CONF[\"cnsoftwarelogin\"]
  464.  
  465. \$COUNTER[\"senderrorsbymail\"]=\"yes\";
  466.  
  467. // Adjust tables and diagrammes to the necessary resolution.
  468. // May be 800 or 1024
  469.  
  470. \$COUNTER[\"resolution\"]=800;
  471. ?>";
  472.  
  473. ?>
  474. <P>Create file <code>config.php</code> in the directory <code>./cnstats</code> and insert the below code into it:</P>
  475.  
  476. <textarea readonly name=config style='width:100%;height:450px;'><?=htmlspecialchars($config);?></textarea></td></tr>
  477. </td></tr>
  478. <tr class=t1><td>
  479. <br><P>The following code should be inserted in the top part of every page of the web-site. It activates the stats system. </P>
  480.  
  481. <textarea readonly name=config style='width:100%;height:140px;'><?=$CCODE[$COUNTER["type"]];?></textarea></td></tr>
  482. </td></tr>
  483.  
  484. </form>
  485. </table>
  486. <?
  487.             install_bottom();
  488.             exit;
  489.             } /* of else */
  490.         } /* if (empty($error)) */
  491.     } /* of if ($HTTP_POST_VARS["step"] */
  492.  
  493.  
  494. if ($step==0) {
  495.     if (is_file("config.php")) include "config.php";
  496.     }
  497. if (intval($COUNTER["savelog"])==0) $COUNTER["savelog"]=30;
  498. if (!isset($COUNTER["type"])) $COUNTER["type"]=2; else $COUNTER["type"]=intval($COUNTER["type"]);
  499. if (empty($STATS_CONF["sqlhost"])) $STATS_CONF["sqlhost"]="localhost";
  500. if (empty($STATS_CONF["sqluser"])) $STATS_CONF["sqluser"]="root";
  501. if (empty($STATS_CONF["dbname"])) $STATS_CONF["dbname"]="cnstats";
  502.  
  503. $cntstr=sprintf("#%02X%02X%02X",$COUNTER["inkR"],$COUNTER["inkG"],$COUNTER["inkB"]);
  504.  
  505. install_title(1,$TOTAL,"Enter data");
  506.  
  507. if (!empty($error)) {
  508.     print "<P><b><font color=red>The following mistakes have occured while filling in the form</font></B>\n<UL>".$error."</UL>";
  509.     }
  510. ?>
  511. <script language="JavaScript" type="text/javascript">
  512. <!--
  513. function upd(v) {
  514.     var i=document.getElementById("admlogin");
  515.     i.value=v;
  516.     }
  517. //-->
  518. </script>
  519.  
  520. <br>
  521. <form action=install.php method=post>
  522. <table cellspacing=1 cellpadding=5 border=0 align=center width=650>
  523. <input type=hidden name=step value='1'>
  524. <tr><th class=ttl colspan=2>MySql connection parameters</th></tr>
  525. <tr class=t1><td width=100%>MySql server (for example localhost)</td><td><input style='width:300px;' type=text name=sqlhost value='<?=htmlspecialchars($STATS_CONF["sqlhost"]);?>'></td></tr>
  526. <tr class=t2><td>MySql connection login</td><td><input style='width:300px;' type=text name=sqluser value='<?=htmlspecialchars($STATS_CONF["sqluser"]);?>'></td></tr>
  527. <tr class=t1><td>MySql connection password</td><td><input style='width:300px;' type=text name=sqlpassword value='<?=htmlspecialchars($STATS_CONF["sqlpassword"]);?>'></td></tr>
  528. <tr class=t2><td>Database name</td><td><input style='width:300px;' type=text name=dbname value='<?=htmlspecialchars($STATS_CONF["dbname"]);?>'></td></tr>
  529. <tr><th class=ttl colspan=2>Administrator's data</th></tr>
  530. <tr class=t1><td>Administrators login</td><td><input class=t1 style='width:300px;' disabled id='admlogin' type=text name=admlogin value='demo@email.com'></td></tr>
  531. <input type="hidden" name="regemail" value="demo@demo.com">
  532. <tr class=t1><td>Administrators password</td><td><input style='width:300px;' type=password name=adminpassword1 value='<?=htmlspecialchars($STATS_CONF["adminpassword1"]);?>'></td></tr>
  533. <tr class=t2><td>Retype password</td><td><input style='width:300px;' type=password name=adminpassword2 value='<?=htmlspecialchars($STATS_CONF["adminpassword2"]);?>'></td></tr>
  534. <tr><th class=ttl colspan=2>Statistics saving</th></tr>
  535. <tr class=t2><td>Save statistics for the period of:</td><td>
  536.  
  537. <select style='width:300px;' name=savelog>
  538. <?
  539. for ($i=1;$i<31;$i++) print "<OPTION value='$i' ".($i==$COUNTER["savelog"]?"selected":"").">$i day".($i>1?"s":"")."</option>\n";
  540. ?>
  541. </select>
  542.  
  543. </td></tr>
  544. <tr><th class=ttl colspan=2>Type of the counter</th></tr>
  545. <tr class=t1><td colspan=2>
  546. <table cellspacing=0 cellpadding=0 border=0>
  547. <tr><td valign=top><input value=2 type=radio name=type <?=($COUNTER["type"]==2)?"checked":"";?>></td><td>Built in PHP page code (recommended if PHP is used at your site)</td></tr>
  548. <tr><td valign=top><input value=0 type=radio name=type <?=($COUNTER["type"]==0)?"checked":"";?>></td><td>Trasparent GIF 1x1 pixel</td></tr>
  549. <tr><td valign=top><input value=1 type=radio <? if ($ispng==0) print "disabled"?> name=type <?=($COUNTER["type"]==1)?"checked":"";?>></td><td>PNG button 88x31. (Total hits, hosts today, total hosts)
  550. <br>
  551. <?
  552. if ($ispng==0) print "<font color=red><b>Requires GD library (see <a href=http://www.php.net/manual/en/ref.image.php target=_blank>http://www.php.net/manual/en/ref.image.php</a>)</b></font>";
  553. ?>
  554. </td></tr>
  555. </table>
  556. </td></tr>
  557. <tr class=t2><td>Symbols color (for PNG counter):</td><td><input <? if ($ispng==0) print "disabled"?> style='width:300px;' type=text name=inkcolor value='<?=htmlspecialchars($cntstr);?>'></td></tr>
  558.  
  559. <tr><th class=ttl colspan=2>Exclude from statistics</th></tr>
  560. <tr class=t1><td>IP (e.g. <?=$HTTP_SERVER_VARS["REMOTE_ADDR"];?>):</td><td><input style='width:300px;' type=text name=exip value='<?=htmlspecialchars($exip);?>'></td></tr>
  561. <tr class=t2><td>Mask (e.g. 255.255.255.255):</td><td><input style='width:300px;' type=text name=exmask value='<?=htmlspecialchars($exmask);?>'></td></tr>
  562. <tr class=t1><td colspan=2 align=right><input type=submit value='Proceed >>'></td></tr>
  563. </table></form>
  564.  
  565. <?
  566. install_bottom()
  567. ?>