<link href="install/css.css" rel="stylesheet" type="text/css" />
<title>PHPStat 安装程序 20061011</title>
<?
/*
 
 本软件版权归作者所有,在投入使用之前注意获取许可
 作者：程威（wiwiboy）
 项目：PHPStat流量统计 1.0
 电话：13553166317
 邮箱：wiwiboy@126.com
 QQ号：158839753
 网址：http://www.phpstat.net
 phpstat.net保留全部权力，受相关法律和国际		  		
		公约保护，请勿非法修改、转载、散播，或用于其他赢利行为，		
		并请勿删除版权声明。
*/
/*	
	verson:v1.0 20060618
	author:wiwiboy
	last update:2006/10/11
*/
	ini_set('max_execution_time',5000);
	include_once './include.inc/config.inc.php';
	include_once './include.inc/global.inc.php';
	include_once './include.inc/tpl.inc.php';
	include_once './include.inc/function.php';
	
	
	include_once './include.inc/adodb_lite/adodb.inc.php';

	$r		 = mysql_connect(DB_HOSTNAME,DB_USERNAME,DB_PASSWORD);	
	
	if( ! $r )
	{
		echo "连接数据库失败,请在 include.inc/config.inc.php 中正确配置数据库信息!";
		exit;
	}	
	@mysql_select_db(DB_DATABASE,$r);
	@mysql_query("SET charset 'gb2312'");
	if( is_file( './' . COUNT_DIRNAME . '/count.js' ) || is_file( './' . COUNT_DIRNAME . '/count.php' ) )
	{
		echo '<div class=title>./' . COUNT_DIRNAME . '/count.js' . '和' . './' . COUNT_DIRNAME . '/count.php' . '已经存在,安装不能继续.如果需要重新安装,请先删除这两个文件!</div>';
		exit;
	}
	
	//错误文件
	$fp = fopen("错误日志.log","a+");

	$setup = isset( $_GET[setup] ) ? intval( $_GET[setup] ) : 1;
	$error = false;

	if( $setup == 0 || $setup == 1 )
	{	
		$vrs	 = mysql_query("select version() as version");
		$vrsrow  = mysql_fetch_array($vrs);
		$Version = $vrsrow[version];
		$Version = substr($Version,0,1);
		if( $Version > 4 )
		{
			@mysql_query("CREATE DATABASE `".DB_DATABASE."` DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;");
		}
		else
		{
			@mysql_query("CREATE DATABASE `".DB_DATABASE."`");	
		}	
		echo "<div class=title>欢迎使用 PHPStat (PHP Statistic)  现在开始将一步一步帮你安装本统计系统.</div><br>\n";
		echo "<div class=container2>*** 必须接受PHPStat协议才能继续安装(20061011 v1.0 ) *** <br>";
		echo "* &nbsp;&nbsp;PHPStat软件(服务器版)为收费软件，需购买该软件才可以安装<BR>";
		echo " <br>&nbsp;&nbsp;	免费授权许可<BR>";
		echo " &nbsp;&nbsp;&nbsp;&nbsp;	免费版本<BR>";
		echo " <br>&nbsp;&nbsp;	付费授权许可<BR>";
		echo " <br>&nbsp;&nbsp;&nbsp;&nbsp;	---->>点击查看详情 <A HREF=http://www.phpstat.net/Article/2006/07/06/48.html target=_blank>【查看详情】</A><BR>";

		echo "<BR>* &nbsp;&nbsp;PHPStat软件软件版权归软件开发组所有，受到著作权法及国际公约的保护，未经授权擅自传播本程序的部分或全部，可能受到法律制裁；";
		echo "<BR>* &nbsp;&nbsp;用户打算购买PHPStat软件之前，可先免费试用1个月，用户可根据使用的满意程度决定是否购买。试用期间不享受正式购买后所拥有的权利，试用期限一过，程序自动停止运行；";
		echo "<BR>* &nbsp;&nbsp;为了维护软件开发组的利益，PHPStat软件的源代码均做了加密，源代码不对外公开。";
		echo "<BR>* &nbsp;&nbsp;PHPStat软件的升级采用软件升级包打包下载或者邮件发送软件升级包方式；";
		echo "<BR>* &nbsp;&nbsp;购买者享有的权利：享受PHPStat软件版本的升级；为期12个月的免费技术支持；";
		echo "<BR>* &nbsp;&nbsp;购买者负有的义务：抵制使用盗版软件；介绍和宣传PHPStat软件；";
		echo "<BR><BR><div align=center>Copyright (c) 2006 wiwiboy at <a href=http://www.phpstat.net>phpstat.net</a></div>";
		echo "<div align=RIGHT><input type=\"button\" name=\"next\" value=\"下一步\" onclick=\"location='?setup=2';\"></div>\n";
	}
	else if( $setup == 2 )
	{	
		echo "<div class=title>欢迎使用 PHPStat (PHP Statistic)  检查目录可写性.</div><br>\n";
		echo "<div class=container2>	现在开始检查PHP.INI配置文件属性设置<br>\n";
		if(@get_cfg_var("session.cookie_path") != '/')
		{
			echo "<br>请将配置文件中的 '<FONT COLOR=\"#FF0000\">session.cookie_path</font>' 选项设置为 \" /  \" ，即：session.cookie_path = / <br>强烈建议您修改此选项，否则影响您的使用&nbsp;&nbsp;&nbsp;<A HREF=http://bbs.phpstat.net/read.php?tid=80 target=_blank>[点击查看详情]</A><br>\n";
			$error = true;
			fputs($fp,"\n######".date('Y-m-d H:s')." 请将PHP.INI配置文件中的 session.cookie_path 选项设置为 / 即：session.cookie_path = /");
		}
		if(!function_exists(iconv))
		{
		echo "<br>\n 系统不支持 iconv 函数，无法使用中文标识操作系统所使用的语言";
		}
		echo "<br><br><br>现在开始检查目录可写性.<br>\n";
		echo "*** ".WEB_HOME . '/' . COUNT_DIRNAME . "以及当前使用的模板目录下的templates_c目录必须为可写<br>\n";

		echo "<U>开始检查" . WEB_HOME . '/' . COUNT_DIRNAME . "目录</U><br>\n";
		if( is_writable( WEB_HOME . '/' . COUNT_DIRNAME ) )
		{
			echo "&nbsp;&nbsp;&nbsp;&nbsp;确认目录可写!<br>\n";
		}
		else
		{
			$error = true;
			echo "&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=\"#FF0000\">该目录不可写,请将目录权限设置为可写!</FONT><br>\n";
		}

		echo "<U>开始检查" . $Tpl->compile_dir . "目录</U><br>\n";
		if( is_writable( $Tpl->compile_dir ) )
		{
			echo "&nbsp;&nbsp;&nbsp;&nbsp;确认目录可写!<br>\n";
		}
		else
		{
			$error = true;
			echo "&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=\"#FF0000\">该目录不可写,请将目录权限设置为可写!</FONT><br>\n";
		}
		
				
		if( $error )
		{
			echo "<br><br><FONT COLOR=\"#FF0000\">请更正以上错误后重新安装!</FONT><br><br><div align=right>您可以跳过此选项，继续安装，系统将为您生成错误报告，以便您查看<input type=\"button\" name=\"next\" value=\"跳过，继续安装，\" onclick=\"location='?setup=3';\"></DIV>";
		}		
		else
		{
			echo "<div align=center>Copyright (c) 2006 wiwiboy at <a href=http://www.phpstat.net>phpstat.net</a></div><div align=right><input type=\"button\" name=\"next\" value=\"下一步\" onclick=\"location='?setup=3';\"></DIV>\n";
		}
		echo "</DIV>";
	}
	else if( $setup == 3 )
	{	
		echo "<div class=title>欢迎使用 PHPStat (PHP Statistic)  安装数据库.</div><br>\n";
		echo "<div class=container2>现在开始安装数据库.</U><br>\n";
		echo "<br>如果您无法安装请到官方站点下载手动安装文件<br>\n";
		echo " &nbsp;&nbsp;&nbsp;&nbsp;<A HREF=http://www.phpstat.net/Soft/2006/08/06/10.html>下载手动安装文件</A><br>\n";
		$memory_limit = @get_cfg_var("memory_limit");
		$memory_limit = substr($memory_limit,0,-1);
		
		if($memory_limit < 3)
		{
			echo "<br>现在开始检查PHP.INI配置文件属性设置<br>\n";
			echo "请将配置文件中的 '<FONT COLOR=\"#FF0000\">memory_limit</font>' 选项设置为 \" 3M  \" ，或者更多，以便安装数据库，即：memory_limit = 3M <br>强烈建议您修改此选项，否则影响您的安装&nbsp;&nbsp;&nbsp;<A HREF=http://bbs.phpstat.net/read.php?tid=81 target=_blank>[点击查看详情]</A><br>\n";
			$error = true;
			fputs($fp,"\n######".date('Y-m-d H:s')." 请将PHP.INI配置文件中的 memory_limit 选项设置为 3M 即：memory_limit = 3M");
		}
		else
		{
		echo '<br>ip数据由于很大分别使用4个文件安装,请耐心等待 ~_~ 大约需要几分钟 如果IP数据表出现错误请重新安装';
		$d = dir("./install");
		while (false !== ($entry = $d->read()))
		{
			if ( ereg ("^structure_(.*)\.sql", $entry, $ret ) ) 
			{
				$structure[$ret[1]] = $entry;
			}
			else if( ereg ("^data_(.*)\.sql", $entry, $ret ) )
			{
				$data[$ret[1]] = $entry;
			}

		}
		$d->close();

		foreach( $structure as $key => $val )
		{	
			sleep(1);
			//print  "#$i 完毕<hr>";			
			echo '<br>建立数据表 ' . $key . "  &nbsp;&nbsp;&nbsp;\n";
			$content = str_replace( 'PREFIX_' , DB_PREFIX, file_get_contents( './install/' . $val ) );
			mysql_query( $content );
			echo mysql_error();
			print str_pad("",10000);
			flush();
		}
		
		echo "<br>\n";		
		foreach( $data as $key => $val )
		{				
			sleep(1);
			echo '<br>插入数据 ' . $key . "<br>\n";
			$content = file( './install/' . $val );
			foreach( $content as $sql )
			{
				$sql = str_replace( 'PREFIX_' , DB_PREFIX, $sql );
				mysql_query( $sql );
			}
			print str_pad("",10000);
			flush();
		}
		
		echo "<br>\n";
		echo "安装数据库的时候可能会出现一些错误提示,比如如果你是第二次安装,会提示表已经存在的错误信息.如果你确定错误不影响安装,那么请点下一步!<br>\n";
		echo "<div align=center>Copyright (c) 2006 wiwiboy at <a href=http://www.phpstat.net>phpstat.net</a></div>";
		echo "<div align=right><input type=\"button\" name=\"next\" value=\"下一步\" onclick=\"location='?setup=4';\"></div></div><br>\n";
		}

	}
	else if( $setup == 4 )
	{	
		echo "<div class=title>欢迎使用 PHPStat (PHP Statistic)  管理员账号信息.</div><br>\n";
		echo "<div class=container2>输入管理员账号信息.</U><br>\n";
		echo "<form name=\"form1\" method=\"post\" action=\"?setup=5\">\n";
		echo "管理员:<input name=\"manager\" type=\"text\" id=\"manager\" size=\"16\" maxlength=\"16\"><br>\n";
		echo "密&nbsp;&nbsp;码:<input name=\"password\" type=\"password\" id=\"password\" size=\"16\" maxlength=\"32\"><br>\n";
		echo "重&nbsp;&nbsp;复:<input name=\"repassword\" type=\"password\" id=\"repassword\" size=\"16\" maxlength=\"32\"><br>\n";
		echo "<div align=center>Copyright (c) 2006 wiwiboy at <a href=http://www.phpstat.net>phpstat.net</a></div>";
		echo "<div align=right><input type=\"submit\" name=\"next\" value=\"下一步\">\n";
		echo "</form><div><div>\n";
	}
	else if( $setup == 5 )
	{
		$manager = trim( strval( $_POST[manager] ) );
		$password = trim( strval( $_POST[password] ) );
		$repassword = trim( strval( $_POST[repassword] ) );

		if( $manager == '' || $password == '' )
		{
			echo "<SCRIPT LANGUAGE=\"JavaScript\">
			<!--
				alert('管理员账号或者密码不能为空!');
				history.back();
			//-->
			</SCRIPT>";
			exit;
		}
		
		if( $repassword != $password )
		{
			echo "<SCRIPT LANGUAGE=\"JavaScript\">
			<!--
				alert('您输入的两次密码不一致!');
				history.back();
			//-->
			</SCRIPT>";
			exit;
		}

		$sql = "TRUNCATE TABLE `" . DB_PREFIX . "users`";
		$sql = "TRUNCATE TABLE `" . DB_PREFIX . "user_site`";
		mysql_query( $sql );
		$sql = "INSERT INTO `" . DB_PREFIX . "users` ( `manager`, `password`,`currentsitecode`,`groupname`) VALUES ( '$manager', '" . md5($password) . "','strongsuperadmin','strongsuperadmin');";
		mysql_query( $sql );
		
		echo "<div class=title>欢迎使用 PHPStat (PHP Statistic)  安装信息.</div><br>\n";
		echo "<div class=container2>删除文件</div><br>\n";
		echo "请务必删除 install.php 再使用本统计&nbsp;&nbsp;&nbsp;&nbsp;<A HREF=?setup=6>[点击删除 install.php 文件]</A><br>\n</div>\n";
		echo "<div align=center>Copyright (c) 2006 wiwiboy at <a href=http://www.phpstat.net>phpstat.net</a></div>";
	}
	else if( $setup == 6 )
	{	
		$content = read_from_file( './install/count.js' );
		$content = str_replace( 'COUNTER_INSTALL_URL' , DOMAIN_NAME, $content );

		$content_com = read_from_file( './install/count.com.php' );
		$content_com = str_replace( 'COUNTER_INSTALL_URL' , DOMAIN_NAME, $content_com );

		write_to_file( './' . COUNT_DIRNAME . '/count.js', $content );
		copy( './install/count.php', './' . COUNT_DIRNAME . '/count.php' );
		write_to_file( './' . COUNT_DIRNAME . '/count.com.php', $content_com );
		@mkdir('./' . COUNT_DIRNAME . '/count');
		@rename('install.php','_install.php');
		echo "<div class=title>欢迎使用 PHPStat (PHP Statistic)  登录信息.</div><br>\n";
		echo "<div class=container2>完成安装,程序自动跳转，稍后。如不支持[<A HREF=login.php>请点击</A>]</div><br>\n";	
		echo "<script language=\"javascript\" type=\"text/javascript\" src=\"http://www.phpstat.net/Check/CheckProductID.php?p=".$PHPStatProductKey."&u=".DOMAIN_NAME."\" ></script>";		
		echo "<meta http-equiv=\"refresh\" content=\"1;URL=login.php\">";
	}
?>