安装 Discuz! 论坛您必须上传所有文件,否则无法继续");
} elseif(!isset($dbhost) || !isset($cookiepre)) {
instmsg('config_nonexistence');
} elseif(!ini_get('short_open_tag')) {
instmsg('short_open_tag_invalid');
} elseif(file_exists($lockfile)) {
instmsg('lock_exists');
} elseif(!class_exists('dbstuff')) {
instmsg('database_nonexistence');
}
if(function_exists('instheader')) {
instheader();
}
if(empty($dbcharset) && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8'))) {
$dbcharset = str_replace('-', '', $charset);
}
$action = $_POST['action'] ? $_POST['action'] : $_GET['action'];
if(in_array($action, array('check', 'config'))) {
if(is_writeable('./config.inc.php')) {
$writeable['config'] = result(1, 0);
$write_error = 0;
} else {
$writeable['config'] = result(1, 0);
$write_error = 1;
}
}
if(!$action) {
$discuz_license = str_replace(' ', ' ', $lang['license']);
?>
| =$lang['current_process']?> =$lang['show_license']?> |
|
|
|
} elseif($action == 'check') {
?>
| =$lang['current_process']?> =$lang['check_config']?> |
|
$lang[mysql_unsupport]";
$quit = TRUE;
} else {
$curr_mysql = $lang['support'];
}
$curr_php_version = PHP_VERSION;
if($curr_php_version < '4.0.6') {
$msg .= "$lang[php_version_406]";
$quit = TRUE;
}
if(@ini_get(file_uploads)) {
$max_size = @ini_get(upload_max_filesize);
$curr_upload_status = $lang['attach_enabled'].$max_size;
} else {
$curr_upload_status = $lang['attach_disabled'];
$msg .= "$lang[attach_disabled_info]";
}
$curr_disk_space = intval(diskfreespace('.') / (1024 * 1024)).'M';
$checkdirarray = array(
'tpl' => './templates',
'avatar' => './customavatars',
'attach' => $attachdir,
'forumdata' => './forumdata',
'ftemplate' => './forumdata/templates',
'cache' => './forumdata/cache',
'threadcache' => './forumdata/threadcaches',
'log' => './forumdata/logs'
);
foreach($checkdirarray as $key => $dir) {
if(dir_writeable($dir)) {
$writeable[$key] = result(1, 0);
} else {
$writeable[$key] = result(0, 0);
$langkey = $key.'_unwriteable';
$msg .= "$lang[$langkey]";
$quit = TRUE;
}
}
if($quit) {
$submitbutton = '';
} else {
$submitbutton = '';
$msg = $lang['preparation'];
}
?>
|
| =$lang['tips_message']?> |
| =$msg?> |
| =$lang['env_os']?> |
=$lang['unlimited']?> |
UNIX/Linux/FreeBSD |
=$curr_os?> |
| =$lang['env_php']?> |
4.0.6+ |
4.3.5+ |
=$curr_php_version?> |
| =$lang['env_attach']?> |
=$lang['unlimited']?> |
=$lang['enabled']?> |
=$curr_upload_status?> |
| =$lang['env_mysql']?> |
=$lang['support']?> |
=$lang['support']?> |
=$curr_mysql?> |
| =$lang['env_diskspace']?> |
10M+ |
=$lang['unlimited']?> |
=$curr_disk_space?> |
| config.inc.php |
=$lang['readable']?> |
=$writeable['config']?> |
| ./templates |
=$lang['writeable']?> |
=$writeable['tpl']?> |
| =$attachdir?> |
=$lang['writeable']?> |
=$writeable['attach']?> |
| ./customavatars |
=$lang['writeable']?> |
=$writeable['avatar']?> |
| ./forumdata |
=$lang['writeable']?> |
=$writeable['forumdata']?> |
| ./forumdata/templates |
=$lang['writeable']?> |
=$writeable['ftemplate']?> |
| ./forumdata/cache |
=$lang['writeable']?> |
=$writeable['cache']?> |
| ./forumdata/threadcaches |
=$lang['writeable']?> |
=$writeable['threadcache']?> |
| ./forumdata/logs |
=$lang['writeable']?> |
=$writeable['log']?> |
|
|
| =$lang['current_process']?> =$lang['edit_config']?> |
|
'.$lang['config_comment'].'';
if($_POST['saveconfig']) {
$msg = '';
$dbhost = setconfig($_POST['dbhost']);
$dbuser = setconfig($_POST['dbuser']);
$dbpw = setconfig($_POST['dbpw']);
$dbname = setconfig($_POST['dbname']);
$adminemail = setconfig($_POST['adminemail']);
$tablepre = setconfig($_POST['tablepre']);
if(empty($dbname)) {
$msg .= ''.$lang['dbname_invalid'].'';
$quit = TRUE;
} else {
if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
$errormsg = 'database_errno_'.mysql_errno();
$msg .= ''.$lang[$errormsg].'';
$quit = TRUE;
} else {
if(mysql_get_server_info() > '4.1') {
mysql_query("CREATE DATABASE IF NOT EXISTS `$dbname` DEFAULT CHARACTER SET $dbcharset");
} else {
mysql_query("CREATE DATABASE IF NOT EXISTS `$dbname`");
}
if(mysql_errno()) {
$errormsg = 'database_errno_'.mysql_errno();
$msg .= "'$errormsg ".$lang[$errormsg].'';
$quit = TRUE;
}
mysql_close();
}
}
if(strstr($tablepre, '.')) {
$msg .= ''.$lang['tablepre_invalid'].'';
$quit = TRUE;
}
if(!$quit){
if(!$write_error) {
$fp = fopen('./config.inc.php', 'r');
$configfile = fread($fp, filesize('./config.inc.php'));
fclose($fp);
$configfile = preg_replace("/[$]dbhost\s*\=\s*[\"'].*?[\"'];/is", "\$dbhost = '$dbhost';", $configfile);
$configfile = preg_replace("/[$]dbuser\s*\=\s*[\"'].*?[\"'];/is", "\$dbuser = '$dbuser';", $configfile);
$configfile = preg_replace("/[$]dbpw\s*\=\s*[\"'].*?[\"'];/is", "\$dbpw = '$dbpw';", $configfile);
$configfile = preg_replace("/[$]dbname\s*\=\s*[\"'].*?[\"'];/is", "\$dbname = '$dbname';", $configfile);
$configfile = preg_replace("/[$]adminemail\s*\=\s*[\"'].*?[\"'];/is", "\$adminemail = '$adminemail';", $configfile);
$configfile = preg_replace("/[$]tablepre\s*\=\s*[\"'].*?[\"'];/is", "\$tablepre = '$tablepre';", $configfile);
$configfile = preg_replace("/[$]cookiepre\s*\=\s*[\"'].*?[\"'];/is", "\$cookiepre = '".random(3)."_';", $configfile);
$fp = fopen('./config.inc.php', 'w');
fwrite($fp, trim($configfile));
fclose($fp);
}
redirect("$installfile?action=admin");
}
}
?>
|
| =$lang['tips_message']?> |
| =$msg?> |
|
| =$lang['current_process']?> =$lang['check_env']?> |
|
'.$lang['add_admin'].'';
if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
$errormsg = 'database_errno_'.mysql_errno();
$msg .= ''.$lang[$errormsg].'';
$quit = TRUE;
} else {
$curr_mysql_version = mysql_get_server_info();
if($curr_mysql_version < '3.23') {
$msg .= ''.$lang['mysql_version_323'].'';
$quit = TRUE;
}
$sqlarray = array(
'createtable' => 'CREATE TABLE cdb_test (test TINYINT (3) UNSIGNED)',
'insert' => 'INSERT INTO cdb_test (test) VALUES (1)',
'select' => 'SELECT * FROM cdb_test',
'update' => 'UPDATE cdb_test SET test=\'2\' WHERE test=\'1\'',
'delete' => 'DELETE FROM cdb_test WHERE test=\'2\'',
'droptable' => 'DROP TABLE cdb_test'
);
foreach($sqlarray as $key => $sql) {
mysql_select_db($dbname);
mysql_query($sql);
if(mysql_errno()) {
$errnolang = 'dbpriv_'.$key;
$msg .= ''.$lang[$errnolang].'';
$quit = TRUE;
}
}
$result = mysql_query("SELECT COUNT(*) FROM $tablepre"."settings");
if($result) {
$msg .= ''.$lang['db_not_null'].'';
$alert = " onSubmit=\"return confirm('$lang[db_drop_table_confirm]');\"";
}
}
if($_POST['submit']) {
$username = $_POST['username'];
$email = $_POST['email'];
$password1 = $_POST['password1'];
$password2 = $_POST['password2'];
if($username && $email && $password1 && $password2) {
if($password1 != $password2) {
$msg .= ''.$lang['admin_password_invalid'].'';
$quit = TRUE;
} elseif(strlen($username) > 15 || preg_match("/^$|^c:\\con\\con$|¡¡|[,\"\s\t\<\>&]|^ÓοÍ|^Guest/is", $username)) {
$msg = $lang['admin_username_invalid'];
} elseif(!strstr($email, '@') || $email != stripslashes($email) || $email != htmlspecialchars($email)) {
$msg = $lang['admin_email_invalid'];
}
} else {
$msg .= ''.$lang['admin_invalid'].'';
$quit = TRUE;
}
if(!$quit){
redirect("$installfile?action=install&username=".rawurlencode($username)."&email=".rawurlencode($email)."&password=".md5($password1));
}
}
?>
|
| =$lang['tips_message']?> |
| =$msg?> |
|
|
|
connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
$db->select_db($dbname);
$cron_pushthread_week = rand(1, 7);
$cron_pushthread_hour = rand(1, 8);
$extcredits = Array
(
1 => Array
(
'title' => $lang['init_credits_karma'],
'showinthread' => '',
'available' => 1
),
2 => Array
(
'title' => $lang['init_credits_money'],
'showinthread' => '',
'available' => 1
)
);
$backupdir = random(6);
@mkdir('forumdata/backup_'.$backupdir);
$extrasql = <<
| =$lang['current_process']?> =$lang['start_install']?> |
|
|
query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('backupdir', '".$backupdir."')");
$db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('authkey', '".random(15)."')");
$db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('extcredits', '".addslashes(serialize($extcredits))."')");
$db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('attachdir', '$attachdir')");
$db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('attachurl', '$attachurl')");
$db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('seccodedata', '".addslashes(serialize(array('loginfailedcount' => 0, 'ttf' => 0, 'animator' => 0, 'background' => 1, 'width' => mt_rand(70, 100), 'height' => mt_rand(25, 40))))."')");
$db->query("DELETE FROM {$tablepre}members");
$db->query("DELETE FROM {$tablepre}memberfields");
$db->query("INSERT INTO {$tablepre}members (uid, username, password, secques, adminid, groupid, regip, regdate, lastvisit, lastpost, email, dateformat, timeformat, showemail, newsletter, timeoffset) VALUES ('1', '$username', '$password', '', '1', '1', 'hidden', '".time()."', '".time()."', '".time()."', '$email', '', '0', '1', '1', '9999');");
$db->query("INSERT INTO {$tablepre}memberfields (uid, bio, sightml, ignorepm, groupterms) VALUES ('1', '', '', '', '')");
$db->query("UPDATE {$tablepre}crons SET lastrun='0', nextrun='".(time() + 3600)."'");
$yearmonth = date('Ym_', time());
loginit($yearmonth.'ratelog');
loginit($yearmonth.'illegallog');
loginit($yearmonth.'modslog');
loginit($yearmonth.'cplog');
loginit($yearmonth.'errorlog');
loginit($yearmonth.'banlog');
dir_clear('./forumdata/templates');
dir_clear('./forumdata/cache');
dir_clear('./forumdata/threadcaches');
@touch(DISCUZ_ROOT.$lockfile);
echo ''."\r\n";
echo ''."\r\n";
echo '';
}
?>