$mystep = new MyStep(); $req = $mystep->getInstance("MyReq", $setting['cookie'], $setting['session']); $step = $req->getReq("step"); switch ($step) { case 1: break; case 2: break; case 3: if (strtolower($_POST['setting']['db']['charset']) == "utf-8") { $_POST['setting']['db']['charset'] = "utf8"; } $_POST['setting']['web']['s_pass'] = md5($_POST['setting']['web']['s_pass']); $_POST['setting']['cookie']['prefix'] = "ms_"; $_POST['setting']['web']['sign'] = md5($_POST['setting']['web']['title'] . $req->GetServer("HTTP_HOST")); $content = changeSetting($_POST['setting']); WriteFile(ROOT_PATH . "/include/config-default.php", $content, "wb"); $link = @mysql_connect($setting['db']['host'], $setting['db']['user'], $setting['db']['pass']); if (!$link) { $step = 21; } else { mysql_close($link); $new_setting = arrayMerge($setting, $_POST['setting']); unset($new_setting['web']['s_user'], $new_setting['web']['s_pass'], $new_setting['web']['cache_mode'], $new_setting['db']['host'], $new_setting['db']['user'], $new_setting['db']['pass'], $new_setting['db']['pconnect'], $new_setting['db']['charset'], $new_setting['gen']['charset'], $new_setting['gen']['gzip_level'], $new_setting['gen']['cache'], $new_setting['gen']['cache_ext'], $new_setting['gen']['timezone'], $new_setting['gen']['update'], $new_setting['gen']['minify'], $new_setting['gen']['etag'], $new_setting['cookie']['path'], $new_setting['cookie']['prefix'], $new_setting['watermark']['position'], $new_setting['watermark']['img_rate'], $new_setting['watermark']['txt_font'], $new_setting['watermark']['txt_fontsize'], $new_setting['watermark']['txt_fontcolor'], $new_setting['watermark']['txt_bgcolor'], $new_setting['watermark']['alpha'], $new_setting['watermark']['credit'], $new_setting['rewrite'], $new_setting['email'], $new_setting['js'], $new_setting['list'], $new_setting['session'], $new_setting['path'], $new_setting['content'], $new_setting['memcache']); $result = <<<mystep <?php \$setting_sub = array(); /*--settings--*/ ?> mystep;
$result = array(); $header = array(); $header['Referer'] = "http://" . $req->GetServer("HTTP_HOST"); $header['ms_sign'] = $setting['web']['sign']; $update_info = GetRemoteContent($setting['gen']['update'] . "?m=update&v=" . $ms_version['ver'] . "&cs=" . $setting['gen']['charset'] . "&email=" . urlencode($setting['web']['email']) . "&title=" . urlencode($setting['web']['title']), $header); $update_info = preg_replace("/(^|[\r\n]+)([\\w]{0,6})[\r\n]+/", "", $update_info); $update_info = base64_decode($update_info); $update_info = unserialize($update_info); $path_rollback = ROOT_PATH . "/admin/rollback/" . $ms_version['ver'] . "/"; MultiDel($path_rollback); WriteFile($path_rollback . "include/config.php", GetFile(ROOT_PATH . "/include/config.php"), "wb"); if (count($update_info['setting']) > 0) { $setting_org = $setting; require ROOT_PATH . "/include/config.php"; $update_info['setting']['gen']['etag'] = date("Ymd"); $content = changeSetting($update_info['setting'], array(), false); if ($method == "update") { WriteFile(ROOT_PATH . "/include/config.php", $content, "wb"); } $setting = $setting_org; WriteFile($path_rollback . $ms_version['ver'] . "_config.php", $content, "wb"); } $pre_list = array(); foreach ($website as $cur_web) { $cur_setting = getSubSetting($cur_web['web_id']); $pre_list[] = $cur_setting['db']['name'] . "`.`" . $cur_setting['db']['pre']; } $strFind = array("{db_name}", "{pre}", "{charset}"); $strReplace = array($setting['db']['name'], $setting['db']['pre'], $setting['db']['charset']); $sql_list = array(); for ($i = 0, $m = count($update_info['sql']); $i < $m; $i++) {
$setting_new = array(); $setting_new['rewrite'] = array(); $setting_new['rewrite']['enable'] = $_POST['rewrite'] == "true"; $setting_new['rewrite']['read'] = $_POST['read']; $setting_new['rewrite']['list'] = $_POST['list']; $setting_new['rewrite']['tag'] = $_POST['tag']; $para_new = array(); $para_new["rewrite"] = array(); $max_count = count($_POST['rule']); for ($i = 0; $i < $max_count; $i++) { if (empty($_POST['rule'][$i])) { continue; } $para_new["rewrite"][] = array($_POST['rule'][$i], $_POST['jump'][$i]); } changeSetting($setting_new, $para_new); if (!empty($_POST['rule_new'])) { if ($_POST['write_type'] == "IIS7") { if (is_file(ROOT_PATH . "/web.config")) { $iis_setting = GetFile(ROOT_PATH . "/web.config"); if (preg_match("/<rewrite>.+<\\/rewrite>/ism", $iis_setting, $match)) { $iis_setting = str_replace($match[0], $_POST['rule_new'], $iis_setting); } else { $iis_setting = str_replace("</system.webServer>", $_POST['rule_new'] . "</system.webServer>", $iis_setting); } WriteFile(ROOT_PATH . "/web.config", $iis_setting, "wb"); } } else { WriteFile(ROOT_PATH . "/.htaccess", $_POST['rule_new'], "wb"); } }