Skip to content

Commit

Permalink
Update program.
Browse files Browse the repository at this point in the history
  • Loading branch information
lincanbin committed May 2, 2015
1 parent d693fa9 commit e882d84
Show file tree
Hide file tree
Showing 3 changed files with 220 additions and 23 deletions.
14 changes: 11 additions & 3 deletions install/index.php
Expand Up @@ -65,6 +65,13 @@
rename ("index.php", "index.txt");
}

}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! ';
}
}
//从文件中逐条取SQL
function GetNextSQL() {
Expand Down Expand Up @@ -100,7 +107,7 @@ function GetNextSQL() {
<head>
<meta charset="UTF-8" />
<meta content="True" name="HandheldFriendly" />
<title>Carbon Forum安装程序</title>
<title>Install - Carbon Forum</title>
<link href="../styles/default/theme/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
Expand All @@ -127,6 +134,7 @@ function GetNextSQL() {
<select name="Language">
<option value="zh-cn">简体中文</option>
<option value="en">English</option>
<option value="pl">polski</option>
</select>
</td>
</tr>
Expand Down Expand Up @@ -162,7 +170,7 @@ function GetNextSQL() {
<div class="sider-box-title">安装说明</div>
<div class="sider-box-content">
<p>
如果出现“Access denied”错误说明填写不正确,请返回重新填写。
如果出现“Access denied”错误,说明填写不正确,请返回重新填写。
</p>
<p>
安装完毕后,第一个注册的用户将会自动成为管理员。
Expand All @@ -178,7 +186,7 @@ function GetNextSQL() {
<!-- footer start -->
<div class="Copyright">
<p>
Power By <a href="http://www.94cb.com" target="_blank">Carbon Forum V3.2.0</a> © 2006-2014
Power By <a href="http://www.94cb.com" target="_blank">Carbon Forum</a> © 2006-2015
</p>
</div>
<!-- footer end -->
Expand Down
209 changes: 209 additions & 0 deletions update/index.php
@@ -0,0 +1,209 @@
<?php
set_time_limit(0);
date_default_timezone_set('Asia/Shanghai');//设置中国时区
$Message = '';
$Version = '3.3.0';

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 `carbon_config` WHERE `ConfigName`='Version'");
//数据处理
$DB->query("UPDATE `carbon_config` SET `ConfigValue`='".$Version."' WHERE `ConfigName`='Version'");
$DB->query("UPDATE `carbon_config` SET `ConfigValue`='".$WebsitePath."' WHERE `ConfigName`='WebsitePath'");
$DB->query("UPDATE `carbon_config` SET `ConfigValue`='".$WebsitePath."/static/js/jquery.js' WHERE `ConfigName`='LoadJqueryUrl'");

//写入config文件
$ConfigPointer = fopen('../install/config.tpl','r');
$ConfigBuffer = fread($ConfigPointer, filesize(dirname(__FILE__).'/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 = '升级成功,升级完成后请马上删除install和update文件夹。<br />Please delete the install folder and the update floder. ';
//当前版本低于3.3.0,需要进行的升级到3.3.0的升级操作
if(VersionCompare('3.3.0' ,$OldVersion)){
$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('index.php')) {
rename("index.php", "index.txt");
}
if (file_exists('../install/index.php')) {
rename("../install/index.php", "../install/index.txt");
}
}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="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="127.0.0.1" /></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>
20 changes: 0 additions & 20 deletions update/updateavatar.php

This file was deleted.

0 comments on commit e882d84

Please sign in to comment.