📄 upgrade11.php
字号:
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,1}','9','smiley','[m:09]','09.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,1}','10','smiley','[m:10]','10.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,1}','11','smiley','[m:11]','11.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,1}','12','smiley','[m:12]','12.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,1}','13','smiley','[m:13]','13.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,1}','14','smiley','[m:14]','14.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,1}','15','smiley','[m:15]','15.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,1}','16','smiley','[m:16]','16.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','1','smiley','[g:01]','01.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','2','smiley','[g:02]','02.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','3','smiley','[g:03]','03.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','4','smiley','[g:04]','04.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','5','smiley','[g:05]','05.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','6','smiley','[g:06]','06.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','7','smiley','[g:07]','07.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','8','smiley','[g:08]','08.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','9','smiley','[g:09]','09.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','10','smiley','[g:10]','10.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','11','smiley','[g:11]','11.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','12','smiley','[g:12]','12.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','13','smiley','[g:13]','13.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','14','smiley','[g:14]','14.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','15','smiley','[g:15]','15.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','16','smiley','[g:16]','16.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','17','smiley','[g:17]','17.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','18','smiley','[g:18]','18.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','19','smiley','[g:19]','19.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','20','smiley','[g:20]','20.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','21','smiley','[g:21]','21.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','22','smiley','[g:22]','22.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','23','smiley','[g:23]','23.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('{typeid,2}','24','smiley','[g:24]','24.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('1','0','smiley',':curse:','curse.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('1','0','smiley',':dizzy:','dizzy.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('1','0','smiley',':shutup:','shutup.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('1','0','smiley',':sleepy:','sleepy.gif');
EOT;
$upgradesql_icons = <<<EOT
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('0','10','icon','','icon10.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('0','11','icon','','icon11.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('0','12','icon','','icon12.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('0','13','icon','','icon13.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('0','14','icon','','icon14.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('0','15','icon','','icon15.gif');
INSERT INTO cdb_smilies (typeid, displayorder, type, code, url) VALUES ('0','16','icon','','icon16.gif');
EOT;
$step = getgpc('step');
$step = empty($step) ? 1 : $step;
instheader();
if(!isset($cookiepre)) {
instmsg('config_nonexistence');
} elseif(!ini_get('short_open_tag')) {
instmsg('short_open_tag_invalid');
}
if(file_exists($lock_file)) {
instmsg('升级被锁定,应该是已经升级过了,如果已经恢复数据请手动删除<br />'.str_replace(DISCUZ_ROOT, '', $lock_file).'<br />之后再来刷新页面');
}
if($step == 1) {
$msg = '<a href="'.$PHP_SELF.'?step=check"><font size="2"><b>>> 如果您已确认完成上面的步骤,请点这里升级</b></font></a>';
echo <<<EOT
<h4>本升级程序只能从 $version[old] 升级到 $version[new]<br /></h4>
升级之前<b>务必备份数据库资料</b>,否则升级失败无法恢复<br /><br />
正确的升级方法为:
<ol>
<li>关闭原有论坛,上传 $version[new] 的全部文件和目录,覆盖服务器上的 $version[old]
<li>上传升级程序到论坛目录中,重新配置好 config.inc.php
<li>运行本程序,直到出现升级完成的提示
<li>如果中途失败,请使用Discuz!工具箱(./utilities/tools.php)里面的数据恢复工具恢复备份,去除错误后重新运行本程序
</ol>
$msg
EOT;
instfooter();
} elseif($step == 'check') {
@touch(DISCUZ_ROOT.'./forumdata/install.lock');
@unlink(DISCUZ_ROOT.'./install/index.php');
echo "<h4>Ucenter版本检测</h4>";
if(!defined('UC_CONNECT')) {
instmsg('您的config.inc.php文件被覆盖,请恢复备份好的config.inc.php文件,之后再尝试升级');
}
include_once DISCUZ_ROOT.'./discuz_version.php';
if(!defined('DISCUZ_VERSION') || DISCUZ_VERSION != '7.0.0') {
instmsg('您还没有上传(或者上传不完全)最新的Discuz!7.0.0的程序文件,请先上传之后再尝试升级');
}
include_once DISCUZ_ROOT.'./uc_client/client.php';
if(!defined('UC_CLIENT_VERSION') || UC_CLIENT_VERSION != '1.5.0') {
instmsg('请将Discuz!7.0.0程序包中的 ./upload/uc_client 上传至论坛根目录,之后再尝试升级');
}
if(!function_exists('uc_check_version')) {
instmsg('您论坛下的uc_client不是最新的版本,请下载最新版本上传上去,之后再尝试升级');
}
$uc_root = get_uc_root();
$return = uc_check_version();
if(empty($return)) {
$upgrade_url = 'http://'.$_SERVER['HTTP_HOST'].$PHP_SELF.'?step=2';
$uc_upgrade_url = UC_API."/upgrade/upgrade2.php?action=db&forward=".urlencode($upgrade_url);
instmsg('无法检测到您的uc目前的版本,请将最新的 UCenter程序上传至<br /> '.($uc_root ? $uc_root : UC_API).'<br /> 目录下之后<a href="'.$uc_upgrade_url.'">点击这里进行升级</a>');
} elseif(is_string($return)) {
instmsg('在确保 UCenter 和 Discuz! 通信成功的前提下,请将最新版的 UCenter 程序文件上传至 <br /> '.($uc_root ? $uc_root : UC_API).'<br /> 目录下之后在回到这里刷新页面');
} elseif(is_array($return)) {
if($return['db'] == '1.5.0') {
instmsg('UCenter已经升级。', 'http://'.$_SERVER['HTTP_HOST'].$PHP_SELF.'?step=2');
}
}
$upgrade_url = 'http://'.$_SERVER['HTTP_HOST'].$PHP_SELF.'?step=check';
instmsg('开始升级Ucenter。', UC_API."/upgrade/upgrade2.php?action=db&forward=".urlencode($upgrade_url));
} elseif($step == 2) {
echo "<h4>新增数据表</h4>";
dir_clear('./forumdata/cache');
dir_clear('./forumdata/templates');
runquery($upgrade1);
instmsg("新增数据表处理完毕。", '?step=3');
instfooter();
} elseif($step == 3) {
$start = isset($_GET['start']) ? intval($_GET['start']) : 0;
echo "<h4>调整论坛数据表结构</h4>";
if(isset($upgradetable[$start]) && $upgradetable[$start][0]) {
echo "升级数据表 [ $start ] {$tablepre}{$upgradetable[$start][0]} {$upgradetable[$start][3]}:";
$successed = upgradetable($upgradetable[$start]);
if($successed === TRUE) {
echo ' <font color=green>OK</font><br />';
} elseif($successed === FALSE) {
//echo ' <font color=red>ERROR</font><br />';
} elseif($successed == 'TABLE NOT EXISTS') {
echo '<span class=red>数据表不存在</span>升级无法继续,请确认您的论坛版本是否正确!</font><br />';
instfooter();
exit;
}
}
$start ++;
if(isset($upgradetable[$start]) && $upgradetable[$start][0]) {
instmsg("请等待 ...", "?step=3&start=$start");
}
instmsg("论坛数据表结构调整完毕。", "?step=4");
instfooter();
} elseif($step == 4) {
echo "<h4>更新部分数据</h4>";
runquery($upgrade3);
upg_bbcodes();
upg_smiles();
upg_icons();
upg_js();
$typeids = $comma = '';
$query = $db->query("SELECT typeid FROM {$tablepre}imagetypes WHERE type='smiley' AND (directory='coolmonkey' OR directory='grapeman')");
while($type = $db->fetch_array($query)) {
$typeids .= $comma.$type['typeid'];
$comma = ',';
}
if($typeids) {
$db->query("UPDATE {$tablepre}smilies SET code=CONCAT('{:', typeid, '_', id, ':}') WHERE typeid IN ($typeids)");
}
$tasktypes = array(
'promotion' =>
array (
'name' => '论坛推广任务',
'version' => '1.0',
),
'gift' =>
array (
'name' => '红包类任务',
'version' => '1.0',
),
'avatar' =>
array (
'name' => '头像类任务',
'version' => '1.0',
)
);
$db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('tasktypes', '".addslashes(serialize($tasktypes))."')");
instmsg("部分数据更新完毕。", "?step=5");
instfooter();
} elseif($step == 5) {
echo "<h4>处理图片附件</h4>";
$total = getgpc('total');
$start = intval(getgpc('start'));
$limit = 100;
if(!$total) {
$total = $db->result_first("SELECT count(*) FROM {$tablepre}attachments WHERE isimage=1");
}
if(!$total || $total <= $start) {
instmsg("图片附件处理完毕。", "?step=6");
}
$query = $db->query("SELECT attachment,aid FROM {$tablepre}attachments WHERE isimage=1 LIMIT $start, $limit");
$attachdir = $db->result_first("SELECT value FROM {$tablepre}settings WHERE variable='attachdir'");
while($attachments = $db->fetch_array($query)) {
$target = $attachdir.'/'.$attachments['attachment'];
$attachinfo = @getimagesize($target);
$img_w = $attachinfo[0];
if($img_w) {
$db->query("UPDATE {$tablepre}attachments SET width='$img_w' WHERE aid='$attachments[aid]'", 'UNBUFFERED');
}
}
$end = $start + $limit;
instmsg("图片附件已处理 $start / $total ...", "?step=5&start=$end&total=$total");
} elseif($step == 6) {
echo "<h4>处理安全提问</h4>";
$total = getgpc('total');
$start = intval(getgpc('start'));
$limit = 1000;
if(!$total) {
$total = $db->result_first("SELECT COUNT(*) FROM {$tablepre}members");
if(is_dir(DISCUZ_ROOT.'./forumdata/upgsecques/')) {
dir_clear(DISCUZ_ROOT.'./forumdata/upgsecques');
}
}
if(!$total || $total <= $start) {
instmsg("安全提问处理完毕。", "?step=7");
}
$urladd = '';
$query = $db->query("SELECT uid, secques FROM {$tablepre}members WHERE secques<>'' ORDER BY uid LIMIT $start, $limit");
if(defined('UC_CONNECT') && UC_CONNECT == 'mysql') {
$uc_db = new dbstuff();
$uc_db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET);
while($member = $db->fetch_array($query)) {
$uid = $member['uid'];
$secques = $member['secques'];
$uc_db->query("UPDATE ".UC_DBTABLEPRE."members SET secques='$secques' WHERE uid='$uid'", 'UNBUFFERED');
}
} else {
$random = getgpc('random');
if(empty($random)) {
$random = random(8);
}
$num = getgpc('num');
$num = $num ? intval($num) : 1;
$sqldump = '';
while($member = $db->fetch_array($query)) {
$uid = $member['uid'];
$secques = $member['secques'];
$sql = "UPDATE uc_members SET secques='$secques' WHERE uid='$uid';\n";
$sqldump .= $sql;
}
if($sqldump) {
if(!is_dir(DISCUZ_ROOT.'./forumdata/upgsecques/')) {
if(mkdir(DISCUZ_ROOT.'./forumdata/upgsecques/')) {
file_put_contents(DISCUZ_ROOT.'./forumdata/upgsecques/index.htm', time());
} else {
instmsg('请登陆服务器将 '.DISCUZ_ROOT.'./forumdata/ 目录属性设置为可写(777)');
}
}
file_put_contents(DISCUZ_ROOT.'./forumdata/upgsecques/secques_'.$random.'_'.$num.'.sql', $sqldump, FILE_APPEND);
}
$num++;
$urladd = '&random='.$random.'&num='.$num;
}
$end = $start + $limit;
instmsg("安全提问已处理 $start / $total ...", "?step=6&start=$end&total=$total".$urladd);
} elseif($step == 7) {
echo "<h4>处理分类信息数据转换</h4>";
$total = getgpc('total');
$start = intval(getgpc('start'));
$limit = 1000;
if(!$total) {
$total = $db->result_first("SELECT COUNT(DISTINCT(tid)) FROM {$tablepre}typeoptionvars");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -