<commit_before><?php
set_time_limit(0);
date_default_timezone_set('Asia/Shanghai');//设置中国时区
$Message = '';
$Version = '3.3.6';
$Prefix = 'carbon_';
if(is_file('update.lock')){
	die("请删除 update/update.lock 文件后再进行操作！<br>Please Remove update/update.lock before update!");
}
if($_SERVER['REQUEST_METHOD'] == 'POST'){
	$Language = $_POST['Language'];
	$DBHost = $_POST['DBHost'];
	$DBName = $_POST['DBName'];
	$DBUser = $_POST['DBUser'];
	$DBPassword = $_POST['DBPassword'];
	//$WebsitePath = $_POST['WebsitePath'];
	$WebsitePath = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
	if(preg_match('/(.*)\/update/i', $WebsitePath , $WebsitePathMatch))
	{
		$WebsitePath = $WebsitePathMatch[1];
	}else{
		$WebsitePath = '';
	}
	//初始化数据库操作类
	require('../includes/PDO.class.php');
	$DB = new Db($DBHost, $DBName, $DBUser, $DBPassword);
	$OldVersion = $DB->single("SELECT ConfigValue FROM `".$Prefix."config` WHERE `ConfigName`='Version'");
	//数据处理
	$DB->query("UPDATE `".$Prefix."config` SET `ConfigValue`='".$Version."' WHERE `ConfigName`='Version'");
	$DB->query("UPDATE `".$Prefix."config` SET `ConfigValue`='".$WebsitePath."' WHERE `ConfigName`='WebsitePath'");
	$DB->query("UPDATE `".$Prefix."config` SET `ConfigValue`='".$WebsitePath."/static/js/jquery.js' WHERE `ConfigName`='LoadJqueryUrl'");
	
	//写入config文件
	$ConfigPointer = fopen('../install/config.tpl','r');
	$ConfigBuffer = fread($ConfigPointer, filesize('../install/config.tpl'));
	$ConfigBuffer = str_replace("{{Language}}",$Language,$ConfigBuffer);
	$ConfigBuffer = str_replace("{{DBHost}}",$DBHost,$ConfigBuffer);
	$ConfigBuffer = str_replace("{{DBName}}",$DBName,$ConfigBuffer);
	$ConfigBuffer = str_replace("{{DBUser}}",$DBUser,$ConfigBuffer);
	$ConfigBuffer = str_replace("{{DBPassword}}",$DBPassword,$ConfigBuffer);
	fclose($ConfigPointer);
	$ConfigPHP = fopen('../config.php',"w+");       
	fwrite($ConfigPHP,$ConfigBuffer);
	fclose($ConfigPHP);

	//写入htaccess文件
	$HtaccessPointer=fopen('../install/htaccess.tpl','r');
	$HtaccessBuffer=fread($HtaccessPointer, filesize('../install/htaccess.tpl'));
	$HtaccessBuffer = str_replace("{{WebSitePath}}",$WebsitePath,$HtaccessBuffer);
	//Server Software Type
	if(isset($_SERVER['HTTP_X_REWRITE_URL'])){//IIS(ISAPI_Rewrite)
		$HtaccessBuffer = str_replace("{{RedirectionType}}","[QSA,NU,PT,L]",$HtaccessBuffer);
	}else{//Others
		$HtaccessBuffer = str_replace("{{RedirectionType}}","[L]",$HtaccessBuffer);
	}
	fclose($HtaccessPointer);
	$Htaccess = fopen("../.htaccess","w+");       
	fwrite($Htaccess, $HtaccessBuffer );
	fclose($Htaccess);

	//rewrite文件配置
	$Message = '升级成功。<br />Update successfully! ';
	//当前版本低于3.3.0，需要进行的升级到3.3.0的升级操作
	if(VersionCompare('3.3.0' ,$OldVersion)){
		require("../includes/MaterialDesign.Avatars.class.php");
		$UserIDArray = $DB->query('SELECT UserName, ID FROM '.$Prefix.'users');
		foreach ($UserIDArray as $UserInfo) {
			if(!is_file('../upload/avatar/small/' . $UserInfo['ID'] . '.png')){
				//echo $UserInfo['UserName'].'<br />';
				if(extension_loaded('gd')){
					$Avatar = new MDAvtars(mb_substr($UserInfo['UserName'], 0, 1, "UTF-8"), 256);
					$Avatar->Save('../upload/avatar/large/' . $UserInfo['ID'] . '.png', 256);
					$Avatar->Save('../upload/avatar/middle/' . $UserInfo['ID'] . '.png', 48);
					$Avatar->Save('../upload/avatar/small/' . $UserInfo['ID'] . '.png', 24);
				}
			}
		}
	}
	//3.3.0
	//关闭数据库连接
	$DB->CloseConnection();
	if (!file_exists('update.lock')) {  
		touch('update.lock');
	}
	if (file_exists('../install/install.lock')) {  
		touch("../install/install.lock");
	}
}else{
	if (version_compare(PHP_VERSION, '5.3.0') < 0) {
		$Message = '你的PHP版本过低，可能会无法正常使用！<br />Your PHP version is too low, it may not work properly!';
	}
	if (! extension_loaded('pdo_mysql')) {
		$Message = '你的PHP未编译pdo_mysql，本程序无法正常工作<br />Your PHP don’t support pdo_mysql extension, this program does not work! ';
	}
}

function VersionCompare($Version, $OldVersion)
{
	$VersionArray = array_map("intval", explode('.', $Version));;
	$OldVersionArray = array_map("intval", explode('.', $OldVersion));
	$NeedToUpdate = false;
	foreach ($VersionArray as $Key => $Value) {
		if($VersionArray[$Key] > $OldVersionArray[$Key]){
			$NeedToUpdate = true;
			break;
		}
	}
	return $NeedToUpdate;
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta content="True" name="HandheldFriendly" />
<title>Update - Carbon Forum</title>
<link href="../styles/default/theme/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
	<!-- content wrapper start -->
	<div class="wrapper">
		<!-- main start -->
		<div class="main">
			<!-- main-content start -->
<div class="main-content">
	<div class="title">
		Carbon Forum &raquo; 升级&nbsp;&nbsp;/&nbsp;&nbsp;Update
	</div>
	<div class="main-box">
			<form action="?" method="post">
			<table cellpadding="5" cellspacing="8" border="0" width="100%" class="fs14">
				<tbody>
					<tr>
						<td width="auto" align="center" colspan="2"><span class="red"><?php echo $Message; ?></span></td>
					</tr>
					<?php if(!$Message) {?>
					<tr>
						<td width="280" align="right">安装语言&nbsp;&nbsp;/&nbsp;&nbsp;Language</td>
						<td width="auto" align="left">
							<select name="Language">
								<option value="zh-cn">简体中文</option>
								<option value="zh-tw">繁體中文</option>
								<option value="en">English</option>
								<option value="pl">polski</option>
							</select>
						</td>
					</tr>
					<tr>
						<td width="280" align="right">数据库地址&nbsp;&nbsp;/&nbsp;&nbsp;Database Host</td>
						<td width="auto" align="left"><input type="text" name="DBHost" class="sl w200" value="localhost" /></td>
					</tr>
					<tr>
						<td width="280" align="right">数据库名&nbsp;&nbsp;/&nbsp;&nbsp;Database Name</td>
						<td width="auto" align="left"><input type="text" name="DBName" class="sl w200" value="" /></td>
					</tr>
					<tr>
						<td width="280" align="right">数据库登陆账号&nbsp;&nbsp;/&nbsp;&nbsp;Database Account</td>
						<td width="auto" align="left"><input type="text" name="DBUser" class="sl w200" value="root" /></td>
					</tr>
					<tr>
						<td width="280" align="right">数据库密码&nbsp;&nbsp;/&nbsp;&nbsp;Database Password</td>
						<td width="auto" align="left"><input type="password" name="DBPassword" class="sl w200" value="" /></td>
					</tr>
					<tr>
						<td width="280" align="right"></td>
						<td width="auto" align="left"><input type="submit" value="升 级 / Update" name="submit" class="textbtn" /></td>
					</tr>
					<?php } ?>
				</tbody>
			</table>
		</form>
	</div>
</div>
	<!-- main-content end -->
	<div class="main-sider">
		<div class="sider-box">
			<div class="sider-box-title">升级说明</div>
			<div class="sider-box-content">
				<p class="red">
				请一定要先备份好你的数据库和upload文件夹！！！<br />
				如果没有备份，请不要继续进行升级操作。
				</p>
				<p class="red">
				Please be sure to back up your database and upload folders! ! !<br />
				If there is no backup, please do not proceed with the upgrade operation! ! !
				</p>
				<p>
				如果出现“Access denied”错误说明填写不正确，请返回重新填写。
				</p>
				<p>
				如果你使用的是性能极差的虚拟主机，你可以在本地电脑完成升级，再上传至服务器（注意本地电脑运行环境要与服务器一致）。
				</p>
			</div>
		</div>
	</div>
		<div class="c"></div>
		</div>
		<!-- main end -->
		<div class="c"></div>

		<!-- footer start -->
		<div class="Copyright">
			<p>
			Power By <a href="http://www.94cb.com" target="_blank">Carbon Forum <?php echo $Version; ?></a> © 2006-2015
			</p>
		</div>
		<!-- footer end -->

	</div>
	<!-- content wrapper end -->
</body>
</html><commit_msg>Automatically fill in the upgrade information.<commit_after><?php
set_time_limit(0);
date_default_timezone_set('Asia/Shanghai');//设置中国时区
$Message = '';
$Version = '3.3.6';
$Prefix = 'carbon_';
if(is_file('update.lock')){
	die("请删除 update/update.lock 文件后再进行操作！<br>Please Remove update/update.lock before update!");
}
if($_SERVER['REQUEST_METHOD'] == 'POST'){
	$Language = $_POST['Language'];
	$DBHost = $_POST['DBHost'];
	$DBName = $_POST['DBName'];
	$DBUser = $_POST['DBUser'];
	$DBPassword = $_POST['DBPassword'];
	//$WebsitePath = $_POST['WebsitePath'];
	$WebsitePath = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
	if(preg_match('/(.*)\/update/i', $WebsitePath , $WebsitePathMatch))
	{
		$WebsitePath = $WebsitePathMatch[1];
	}else{
		$WebsitePath = '';
	}
	//初始化数据库操作类
	require('../includes/PDO.class.php');
	$DB = new Db($DBHost, $DBName, $DBUser, $DBPassword);
	$OldVersion = $DB->single("SELECT ConfigValue FROM `".$Prefix."config` WHERE `ConfigName`='Version'");
	//数据处理
	$DB->query("UPDATE `".$Prefix."config` SET `ConfigValue`='".$Version."' WHERE `ConfigName`='Version'");
	$DB->query("UPDATE `".$Prefix."config` SET `ConfigValue`='".$WebsitePath."' WHERE `ConfigName`='WebsitePath'");
	$DB->query("UPDATE `".$Prefix."config` SET `ConfigValue`='".$WebsitePath."/static/js/jquery.js' WHERE `ConfigName`='LoadJqueryUrl'");
	
	//写入config文件
	$ConfigPointer = fopen('../install/config.tpl','r');
	$ConfigBuffer = fread($ConfigPointer, filesize('../install/config.tpl'));
	$ConfigBuffer = str_replace("{{Language}}",$Language,$ConfigBuffer);
	$ConfigBuffer = str_replace("{{DBHost}}",$DBHost,$ConfigBuffer);
	$ConfigBuffer = str_replace("{{DBName}}",$DBName,$ConfigBuffer);
	$ConfigBuffer = str_replace("{{DBUser}}",$DBUser,$ConfigBuffer);
	$ConfigBuffer = str_replace("{{DBPassword}}",$DBPassword,$ConfigBuffer);
	fclose($ConfigPointer);
	$ConfigPHP = fopen('../config.php',"w+");       
	fwrite($ConfigPHP,$ConfigBuffer);
	fclose($ConfigPHP);

	//写入htaccess文件
	$HtaccessPointer=fopen('../install/htaccess.tpl','r');
	$HtaccessBuffer=fread($HtaccessPointer, filesize('../install/htaccess.tpl'));
	$HtaccessBuffer = str_replace("{{WebSitePath}}",$WebsitePath,$HtaccessBuffer);
	//Server Software Type
	if(isset($_SERVER['HTTP_X_REWRITE_URL'])){//IIS(ISAPI_Rewrite)
		$HtaccessBuffer = str_replace("{{RedirectionType}}","[QSA,NU,PT,L]",$HtaccessBuffer);
	}else{//Others
		$HtaccessBuffer = str_replace("{{RedirectionType}}","[L]",$HtaccessBuffer);
	}
	fclose($HtaccessPointer);
	$Htaccess = fopen("../.htaccess","w+");       
	fwrite($Htaccess, $HtaccessBuffer );
	fclose($Htaccess);

	//rewrite文件配置
	$Message = '升级成功。<br />Update successfully! ';
	//当前版本低于3.3.0，需要进行的升级到3.3.0的升级操作
	if(VersionCompare('3.3.0' ,$OldVersion)){
		require("../includes/MaterialDesign.Avatars.class.php");
		$UserIDArray = $DB->query('SELECT UserName, ID FROM '.$Prefix.'users');
		foreach ($UserIDArray as $UserInfo) {
			if(!is_file('../upload/avatar/small/' . $UserInfo['ID'] . '.png')){
				//echo $UserInfo['UserName'].'<br />';
				if(extension_loaded('gd')){
					$Avatar = new MDAvtars(mb_substr($UserInfo['UserName'], 0, 1, "UTF-8"), 256);
					$Avatar->Save('../upload/avatar/large/' . $UserInfo['ID'] . '.png', 256);
					$Avatar->Save('../upload/avatar/middle/' . $UserInfo['ID'] . '.png', 48);
					$Avatar->Save('../upload/avatar/small/' . $UserInfo['ID'] . '.png', 24);
				}
			}
		}
	}
	//3.3.0
	//关闭数据库连接
	$DB->CloseConnection();
	if (!file_exists('update.lock')) {  
		touch('update.lock');
	}
	if (file_exists('../install/install.lock')) {  
		touch("../install/install.lock");
	}
}else{
	if (version_compare(PHP_VERSION, '5.3.0') < 0) {
		$Message = '你的PHP版本过低，可能会无法正常使用！<br />Your PHP version is too low, it may not work properly!';
	}
	if (! extension_loaded('pdo_mysql')) {
		$Message = '你的PHP未编译pdo_mysql，本程序无法正常工作<br />Your PHP don’t support pdo_mysql extension, this program does not work! ';
	}
	if(is_file('../config.php')){
		require("../config.php");
	}else{
		define('ForumLanguage', 'zh-cn');
		define('DBHost', 'localhost');
		define('DBName', 'carbon');
		define('DBUser', 'root');
		//define('DBPassword', '');
	}
}

function VersionCompare($Version, $OldVersion)
{
	$VersionArray = array_map("intval", explode('.', $Version));;
	$OldVersionArray = array_map("intval", explode('.', $OldVersion));
	$NeedToUpdate = false;
	foreach ($VersionArray as $Key => $Value) {
		if($VersionArray[$Key] > $OldVersionArray[$Key]){
			$NeedToUpdate = true;
			break;
		}
	}
	return $NeedToUpdate;
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta content="True" name="HandheldFriendly" />
<title>Update - Carbon Forum</title>
<link href="../styles/default/theme/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
	<!-- content wrapper start -->
	<div class="wrapper">
		<!-- main start -->
		<div class="main">
			<!-- main-content start -->
<div class="main-content">
	<div class="title">
		Carbon Forum &raquo; 升级&nbsp;&nbsp;/&nbsp;&nbsp;Update
	</div>
	<div class="main-box">
			<form action="?" method="post">
			<table cellpadding="5" cellspacing="8" border="0" width="100%" class="fs14">
				<tbody>
					<tr>
						<td width="auto" align="center" colspan="2"><span class="red"><?php echo $Message; ?></span></td>
					</tr>
					<?php if(!$Message) {?>
					<tr>
						<td width="280" align="right">安装语言&nbsp;&nbsp;/&nbsp;&nbsp;Language</td>
						<td width="auto" align="left">
							<select name="Language">
								<option value="<?php echo ForumLanguage; ?>">Current Language: <?php echo ForumLanguage; ?></option>
								<option value="zh-cn">简体中文</option>
								<option value="zh-tw">繁體中文</option>
								<option value="en">English</option>
								<option value="pl">polski</option>
							</select>
						</td>
					</tr>
					<tr>
						<td width="280" align="right">数据库地址&nbsp;&nbsp;/&nbsp;&nbsp;Database Host</td>
						<td width="auto" align="left"><input type="text" name="DBHost" class="sl w200" value="<?php echo DBHost; ?>" /></td>
					</tr>
					<tr>
						<td width="280" align="right">数据库名&nbsp;&nbsp;/&nbsp;&nbsp;Database Name</td>
						<td width="auto" align="left"><input type="text" name="DBName" class="sl w200" value="<?php echo DBName; ?>" /></td>
					</tr>
					<tr>
						<td width="280" align="right">数据库登陆账号&nbsp;&nbsp;/&nbsp;&nbsp;Database Account</td>
						<td width="auto" align="left"><input type="text" name="DBUser" class="sl w200" value="<?php echo DBUser; ?>" /></td>
					</tr>
					<tr>
						<td width="280" align="right">数据库密码&nbsp;&nbsp;/&nbsp;&nbsp;Database Password</td>
						<td width="auto" align="left"><input type="password" name="DBPassword" class="sl w200" value="" /></td>
					</tr>
					<tr>
						<td width="280" align="right"></td>
						<td width="auto" align="left"><input type="submit" value="升 级 / Update" name="submit" class="textbtn" /></td>
					</tr>
					<?php } ?>
				</tbody>
			</table>
		</form>
	</div>
</div>
	<!-- main-content end -->
	<div class="main-sider">
		<div class="sider-box">
			<div class="sider-box-title">升级说明</div>
			<div class="sider-box-content">
				<p class="red">
				请一定要先备份好你的数据库和upload文件夹！！！<br />
				如果没有备份，请不要继续进行升级操作。
				</p>
				<p class="red">
				Please be sure to back up your database and upload folders! ! !<br />
				If there is no backup, please do not proceed with the upgrade operation! ! !
				</p>
				<p>
				如果出现“Access denied”错误说明填写不正确，请返回重新填写。
				</p>
				<p>
				如果你使用的是性能极差的虚拟主机，你可以在本地电脑完成升级，再上传至服务器（注意本地电脑运行环境要与服务器一致）。
				</p>
			</div>
		</div>
	</div>
		<div class="c"></div>
		</div>
		<!-- main end -->
		<div class="c"></div>

		<!-- footer start -->
		<div class="Copyright">
			<p>
			Power By <a href="http://www.94cb.com" target="_blank">Carbon Forum <?php echo $Version; ?></a> © 2006-2015
			</p>
		</div>
		<!-- footer end -->

	</div>
	<!-- content wrapper end -->
</body>
</html>
{'fraction_non_alphanumeric': 0.22059096822152016, 'fraction_numerical': 0.011769807346837639, 'mean_word_length': 3.7834074074074073, 'pattern_counts': {'":': 0, '<': 274, '<?xml version=': 0, '>': 294, 'https://': 0, 'lorem ipsum': 0, 'www.': 6, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5169844', 'n_tokens_mistral': 6834, 'n_tokens_neox': 6151, 'n_words': 1006}