<?php
use modul_application\ESPCM_InstallDB;
use application\ESPCMS_FileTool;
use inc_application\link\SetupLink;
class Setup {
public function __construct() {
$installlock = ESPCMS_FILE_ROOT . 'espcms_datacache/install.lock';
if (file_exists($installlock) && $_GET['at'] != 'SetupOk') {
espcms_message_err('setup_pack-espcms_lable_install_repetition');
}
}
public static function in_SetupIndex() {
global $espcms_web_templates, $espcms_license;
$espcms_web_templates->into('espcms_license', $espcms_license);
$espcms_web_templates->into('link', SetupLink::get_link());
$espcms_web_templates->into('path', 'index');
$espcms_web_templates->output('index', 'index', false, false);
}
public static function in_RunTime() {
global $espcms_web_templates, $espcms_license, $loading_php_version, $loading_mysql_version;
$is_setup = 1;
$ser_inc = array();
$ser_inc[] = array('title' => espcms_lan_pack('setup_pack-espcms_lable_setup_runtime_servername'), 'key' => php_uname('s') . '-' . php_uname('v'), 'sug' => 'Windows NT/Linux');
$ser_inc[] = array('title' => espcms_lan_pack('setup_pack-espcms_lable_setup_runtime_serverweb'), 'key' => $_SERVER['SERVER_SOFTWARE'], 'sug' => 'Apache/Nginx');
$ser_inc[] = array('title' => espcms_lan_pack('setup_pack-espcms_lable_setup_runtime_phpver'), 'key' => PHP_VERSION, 'sug' => $loading_php_version . '以上');
$ser_inc[] = array('title' => espcms_lan_pack('setup_pack-espcms_lable_setup_runtime_mysql'), 'key' => '/', 'sug' => $loading_mysql_version . '以上');
$ser_inc[] = array('title' => espcms_lan_pack('setup_pack-espcms_lable_setup_runtime_installpath'), 'key' => ESPCMS_FILE_ROOT, 'sug' => '/');
$ser_inc[] = array('title' => espcms_lan_pack('setup_pack-espcms_lable_setup_runtime_phpupload'), 'key' => ini_get('upload_max_filesize'), 'sug' => '2M以上');
$ser_inc[] = array('title' => espcms_lan_pack('setup_pack-espcms_lable_setup_runtime_disksize'), 'key' => floor(disk_free_space(ESPCMS_FILE_ROOT) / (1024 * 1024)) . 'M', 'sug' => '100M以上');
$php_inc = array();
$php_inc[] = array('title' => 'PDO', 'key' => extension_loaded('pdo') && extension_loaded('pdo_mysql') ? 1 : 0, 'sug' => 1);
$php_inc[] = array('title' => 'Fsockopen', 'key' => ini_get('allow_url_fopen') && function_exists('fsockopen') ? 1 : 0, 'sug' => 1);
$php_inc[] = array('title' => 'CURL', 'key' => extension_loaded('curl') && function_exists('curl_init') ? 1 : 0, 'sug' => 1);
$php_inc[] = array('title' => 'openSSL', 'key' => extension_loaded('openssl') ? 1 : 0, 'sug' => 1);
$php_inc[] = array('title' => 'GD2', 'key' => extension_loaded('gd') ? 1 : 0, 'sug' => 1);
$php_inc[] = array('title' => 'ZIP', 'key' => function_exists('zip_open') && function_exists('zip_read') ? 1 : 0, 'sug' => 1);
$php_inc[] = array('title' => 'Mcrypt', 'key' => function_exists('mcrypt_encrypt') && extension_loaded('Mcrypt') ? 1 : 0, 'sug' => 1);
foreach ($php_inc as $value) {
if (!$value['key']) {
$is_setup = 0;
break;
}
}
$dir_array = ESPCM_InstallDB::get_write_file();
if (is_array($dir_array)) {
$dir_inc = array();
foreach ($dir_array as $key => $value) {
$dir_path = ESPCMS_FILE_ROOT . $value['name'];
$dir_status = is_dir($dir_path) && ESPCMS_FileTool::is_dir_writeable($dir_path) ? 1 : 0;
$dir_inc[] = array('title' => $value['name'], 'key' => $dir_status, 'sug' => 1);
if (!$dir_status && $is_setup) {
$is_setup = 0;
}
}
}
$espcms_web_templates->into('espcms_license', $espcms_license);
$espcms_web_templates->into('link', SetupLink::get_link());
$espcms_web_templates->into('path', 'runtime');
$espcms_web_templates->into('is_setup', $is_setup);
$espcms_web_templates->into('ser_inc', $ser_inc);
$espcms_web_templates->into('php_inc', $php_inc);
$espcms_web_templates->into('dir_inc', $dir_inc);
$espcms_web_templates->output('index', 'index', false, false);
}
public static function in_RegYun() {
global $espcms_web_templates, $espcms_license;
$espcms_setup_user_info = $_COOKIE['espcms_setup_user_info'] ? unserialize(stripslashes($_COOKIE['espcms_setup_user_info'])) : '';
if ($espcms_setup_user_info && is_array($espcms_setup_user_info)) {
$espcms_web_templates->into('userinfo', $espcms_setup_user_info);
}
$espcms_web_templates->into('espcms_license', $espcms_license);
$espcms_web_templates->into('link', SetupLink::get_link());
$espcms_web_templates->into('path', 'reg');
$espcms_web_templates->output('index', 'index', false, false);
}
public static function in_RegYunDB() {
if (!preg_match('/^[\x{4e00}-\x{9fa5}\w]{2,50}$/u', $_POST['login_user']) && !espcms_ismoblie($_POST['login_user']) && !espcms_isemail($_POST['login_user'])) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_login_user_validation_msg', 'false');
}
$login_user = $_POST['login_user'];
$password_len = strlen($_POST['password']);
if ($password_len < 6 || $password_len > 30) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_login_password_validation_msg', 'false');
}
$password = $_POST['password'];
$user_view = ESPCM_InstallDB::connect_service('Memberlogindb', array('login_user' => $login_user, 'password' => $password));
if (!$user_view || !is_array($user_view) || !$user_view['uid'] || !espcms_ismatches($user_view['uid'])) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_login_err', 'false');
}
$user_login_info_ser = serialize($user_view);
espcms_set_cookie('espcms_setup_user_info', $user_login_info_ser, 86400);
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_login_ok', 'true', array(), 'json', $user_view);
}
public static function in_Setting() {
global $espcms_web_templates;
$espcms_setup_user_info = $_COOKIE['espcms_setup_user_info'] ? unserialize(stripslashes($_COOKIE['espcms_setup_user_info'])) : '';
if (!$espcms_setup_user_info || !is_array($espcms_setup_user_info)) {
espcms_message_err('setup_pack-espcms_lable_setup_login_err2');
}
$espcms_setup_db = $_COOKIE['espcms_setup_db'] ? unserialize(stripslashes($_COOKIE['espcms_setup_db'])) : '';
if ($espcms_setup_db && is_array($espcms_setup_db)) {
$espcms_web_templates->into('setup_db', $espcms_setup_db);
}
$espcms_web_templates->into('userinfo', $espcms_setup_user_info);
$espcms_web_templates->into('link', SetupLink::get_link());
$espcms_web_templates->into('path', 'setting');
$espcms_web_templates->output('index', 'index', false, false);
}
public static function in_SettingDB() {
if ((!espcms_isip($_POST['db_host']) && !espcms_isurl($_POST['db_host'], '/^[\w-]+\.[\w-]+\.[\w-\.]+$/i')) || !espcms_isact($_POST['db_name'], "/^[a-zA-Z]{1}[\w\-]*$/i") || !espcms_isact($_POST['db_user'], "/^[\w]+$/i") || !espcms_isact($_POST['db_prefix'], "/^[\w]+$/i") || !espcms_isact($_POST['db_password'], "/^.{2,50}$/i")) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_setting_db_input_err', 'false');
}
if (!espcms_isemail($_POST['admin_email']) || !espcms_isact($_POST['admin_username'], "/^[\w]{2,50}$/i") || !espcms_isact($_POST['admin_password'], "/^.{6,30}$/i") || !preg_match('/^[\x{4e00}-\x{9fa5}\w\-]{2,50}$/u', $_POST['webname'])) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_setting_db_input_err', 'false');
}
if (!espcms_ismatches($_POST['db_setuptype']) || !espcms_ismatches($_POST['db_linktype']) || !espcms_ismatches($_POST['module_dbdemo']) || !espcms_ismatches($_POST['module_app'])) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_setting_db_input_err', 'false');
}
$link = self::SqlLink($_POST['db_host'], $_POST['db_name'], $_POST['db_user'], $_POST['db_password']);
if (!$link) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_setting_no', 'false');
}
$espcms_setup_db = serialize($_POST);
espcms_set_cookie('espcms_setup_db', $espcms_setup_db, 86400);
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_setting_ok', 'true');
}
public static function in_DownLoadDB() {
global $espcms_web_templates;
$espcms_setup_user_info = $_COOKIE['espcms_setup_user_info'] ? unserialize(stripslashes($_COOKIE['espcms_setup_user_info'])) : '';
if (!$espcms_setup_user_info || !is_array($espcms_setup_user_info)) {
espcms_message_err('setup_pack-espcms_lable_setup_login_err2');
}
$espcms_setup_db = $_COOKIE['espcms_setup_db'] ? unserialize(stripslashes($_COOKIE['espcms_setup_db'])) : '';
if (!$espcms_setup_db || !is_array($espcms_setup_db)) {
espcms_message_err('setup_pack-espcms_lable_setup_setting_db_input_err');
}
if ($_COOKIE['espcms_setup_db_file']) {
espcms_set_cookie('espcms_setup_db_file', false);
}
$espcms_web_templates->into('userinfo', $espcms_setup_user_info);
$espcms_web_templates->into('link', SetupLink::get_link());
$espcms_web_templates->into('path', 'download');
$espcms_web_templates->output('index', 'index', false, false);
}
public static function in_DownloadFile() {
$espcms_setup_user_info = $_COOKIE['espcms_setup_user_info'] ? unserialize(stripslashes($_COOKIE['espcms_setup_user_info'])) : '';
if (!$espcms_setup_user_info || !is_array($espcms_setup_user_info) || !$espcms_setup_user_info['uid']) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_login_err2', 'false');
}
$espcms_setup_db = $_COOKIE['espcms_setup_db'] ? unserialize(stripslashes($_COOKIE['espcms_setup_db'])) : '';
if (!$espcms_setup_db || !is_array($espcms_setup_db)) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_setting_db_input_err', 'false');
}
$espcms_setup_user_info['install_pack_istype'] = $espcms_setup_db['module_app'];
$download_list = ESPCM_InstallDB::connect_service('InstallPack', $espcms_setup_user_info, false);
if (!$download_list) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_download_err', 'false');
}
exit($download_list);
}
public static function in_DownloadView() {
$uid = $_POST['uid'];
if (!$uid || !espcms_ismatches($uid)) {
espcms_public_dialog('espcms_public_dialog', 'public_pack-espcms_input_parameter_fail', 'false', array($uid));
}
$espcms_setup_user_info = $_COOKIE['espcms_setup_user_info'] ? unserialize(stripslashes($_COOKIE['espcms_setup_user_info'])) : '';
if (!$espcms_setup_user_info || !is_array($espcms_setup_user_info) || !$espcms_setup_user_info['uid']) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_login_err2', 'false');
}
$espcms_setup_user_info['install_pack_id'] = $uid;
$install_pack_view = ESPCM_InstallDB::connect_service('InstallPackView', $espcms_setup_user_info);
if (!$install_pack_view || !is_array($install_pack_view)) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_download_err3', 'false', array($uid));
}
if (!function_exists('zip_open')) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_download_err4', 'false');
}
$save_status = self::saveFile($install_pack_view);
if ($save_status) {
if ($install_pack_view['install_pack_isdb'] == 1) {
$db_name = md5($install_pack_view['install_pack_filename']);
$espcms_setup_db_file = $_COOKIE['espcms_setup_db_file'] ? unserialize(stripslashes($_COOKIE['espcms_setup_db_file'])) : array();
$espcms_setup_db_file[] = $db_name;
$espcms_setup_db_file_ser = serialize($espcms_setup_db_file);
espcms_set_cookie('espcms_setup_db_file', $espcms_setup_db_file_ser, 86400);
}
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_download_ok', 'true', array($install_pack_view['install_pack_title']), 'json', $install_pack_view);
} else {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_download_err3', 'false', array($uid), 'json', $install_pack_view);
}
}
private static function saveFile($pack_read = array()) {
if (!$pack_read || !is_array($pack_read) || !$pack_read['install_pack_filename'] || !$pack_read['upfile']) {
return false;
}
$filename = md5($pack_read['install_pack_filename']);
$download_file = ESPCMS_FILE_ROOT . 'espcms_datacache/cache_pack/' . $filename . '.zip';
if (!is_file($download_file)) {
if (!ESPCMS_FileTool::downloadFile($pack_read['upfile'], $download_file)) {
return false;
}
}
$zip_path = $pack_read['install_pack_isdb'] == 2 ? ESPCMS_FILE_ROOT : ESPCMS_FILE_ROOT . 'espcms_install/db/' . $filename . '/';
if ($pack_read['install_pack_isdb'] == 1 && !is_dir($zip_path)) {
if (!mkdir($zip_path)) {
return false;
}
}
$zip = zip_open($download_file);
if (is_resource($zip)) {
while (($zip_entry = zip_read($zip)) !== false) {
$filename = zip_entry_name($zip_entry);
$foldername = $zip_path . $filename;
if (strpos(zip_entry_name($zip_entry), '/') !== false) {
$last = strrpos(zip_entry_name($zip_entry), '/');
$dir = $zip_path . substr(zip_entry_name($zip_entry), 0, $last);
$file = substr(zip_entry_name($zip_entry), strrpos(zip_entry_name($zip_entry), '/') + 1);
if (!is_dir($dir)) {
mkdir($dir, 0755, true);
}
if (strlen(trim($file)) > 0) {
$return = file_put_contents($foldername, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)));
if (!$return) {
return false;
}
}
} else {
$return = file_put_contents($foldername, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)));
if (!$return) {
return false;
}
}
}
zip_close($zip);
ESPCMS_FileTool::delFile($download_file);
} else {
return false;
}
return true;
}
public static function in_LinkDemo() {
$db_host = $_POST['db_host'] && (espcms_isip($_POST['db_host']) || espcms_isurl($_POST['db_host'], '/^[\w-]+\.[\w-]+\.[\w-\.]+$/i')) ? $_POST['db_host'] : '';
$db_name = $_POST['db_name'] && espcms_isact($_POST['db_name'], "/^[\w\-]+$/i") ? $_POST['db_name'] : '';
$db_user = $_POST['db_user'] && espcms_isact($_POST['db_user'], "/^[\w\-]+$/i") ? $_POST['db_user'] : '';
$db_password = $_POST['db_password'] && espcms_isact($_POST['db_password'], "/^.{2,50}$/i") ? $_POST['db_password'] : '';
$db_prefix = $_POST['db_prefix'] && espcms_isact($_POST['db_prefix'], "/^[\w]+_$/i") ? $_POST['db_prefix'] : '';
if (!$db_host || !$db_name || !$db_user || !$db_password || !$db_prefix) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_setting_db_link_demo_err', 'false');
}
$link = self::SqlLink($db_host, $db_name, $db_user, $db_password);
if ($link) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_setting_db_link_ok', 'true');
} else {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_setting_db_link_no', 'false');
}
}
private static function SqlLink($db_host = false, $db_name = false, $db_user = false, $db_password = false) {
if (!$db_host || !$db_name || !$db_user || !$db_password) {
return false;
}
$link = @mysql_connect($db_host, $db_user, $db_password);
if (!$link) {
$link_type = false;
} else {
$link_type = true;
mysql_close($link);
}
return $link_type;
}
public static function in_InstallDB() {
global $espcms_web_templates;
$espcms_setup_user_info = $_COOKIE['espcms_setup_user_info'] ? unserialize(stripslashes($_COOKIE['espcms_setup_user_info'])) : '';
if (!$espcms_setup_user_info || !is_array($espcms_setup_user_info)) {
espcms_message_err('setup_pack-espcms_lable_setup_login_err2');
}
$espcms_setup_db = $_COOKIE['espcms_setup_db'] ? unserialize(stripslashes($_COOKIE['espcms_setup_db'])) : '';
if (!$espcms_setup_db || !is_array($espcms_setup_db)) {
espcms_message_err('setup_pack-espcms_lable_setup_setting_db_input_err');
}
$espcms_setup_db_file = $_COOKIE['espcms_setup_db_file'] ? unserialize(stripslashes($_COOKIE['espcms_setup_db_file'])) : '';
if (!$espcms_setup_db_file || !is_array($espcms_setup_db_file)) {
espcms_message_err('setup_pack-espcms_lable_setup_download_err5');
}
$db_array[] = array('db_file' => 'espcms_p8_1.sql', 'db_istype' => 1, 'db_name' => espcms_lan_pack('setup_pack-espcms_lable_install_db1'));
$db_array[] = array('db_file' => 'espcms_p8_2.sql', 'db_istype' => 1, 'db_name' => espcms_lan_pack('setup_pack-espcms_lable_install_db1'));
if ($espcms_setup_db['module_dbdemo']) {
$db_array[] = array('db_file' => 'espcms_p8_3.sql', 'db_istype' => 1, 'db_name' => espcms_lan_pack('setup_pack-espcms_lable_install_db2'));
}
if (is_array($espcms_setup_db_file)) {
foreach ($espcms_setup_db_file as $value) {
$db_array[] = array('db_file' => $value, 'db_istype' => 2, 'db_name' => espcms_lan_pack('setup_pack-espcms_lable_install_db3'));
}
}
if ((!espcms_isip($espcms_setup_db['db_host']) && !espcms_isurl($espcms_setup_db['db_host'], '/^[\w-]+\.[\w-]+\.[\w-\.]+$/i')) || !espcms_isact($espcms_setup_db['db_name'], "/^[\w\-]+$/i") || !espcms_isact($espcms_setup_db['db_user'], "/^[\w\-]+$/i") || !espcms_isact($espcms_setup_db['db_password'], "/^.{2,50}$/i") || !espcms_isact($espcms_setup_db['db_prefix'], "/^[\w]+_$/i")) {
espcms_message_err('setup_pack-espcms_lable_setup_setting_db_input_err2');
}
$link = @mysql_connect($espcms_setup_db['db_host'], $espcms_setup_db['db_user'], $espcms_setup_db['db_password']);
if (!$link) {
espcms_message_err('setup_pack-espcms_lable_setup_setting_db_link_no');
}
$dbname = $espcms_setup_db['db_name'];
$sql = mysql_query("CREATE DATABASE IF NOT EXISTS $dbname DEFAULT CHARACTER SET utf8");
if (!$sql) {
espcms_message_err('setup_pack-espcms_lable_setup_setting_db_input_err3');
}
$setup_db_file = json_encode($db_array);
$espcms_web_templates->into('setup_db_file', $setup_db_file);
$espcms_web_templates->into('userinfo', $espcms_setup_user_info);
$espcms_web_templates->into('link', SetupLink::get_link());
$espcms_web_templates->into('path', 'installdb');
$espcms_web_templates->output('index', 'index', false, false);
}
public static function in_SaveDB() {
global $espcms_db_version, $espcms_version;
$espcms_setup_user_info = $_COOKIE['espcms_setup_user_info'] ? unserialize(stripslashes($_COOKIE['espcms_setup_user_info'])) : '';
if (!$espcms_setup_user_info || !is_array($espcms_setup_user_info) || !$espcms_setup_user_info['uid']) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_login_err2', 'false');
}
$espcms_setup_db = $_COOKIE['espcms_setup_db'] ? unserialize(stripslashes($_COOKIE['espcms_setup_db'])) : '';
if (!$espcms_setup_db || !is_array($espcms_setup_db)) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_setup_setting_db_input_err', 'false');
}
$db_path = ESPCMS_FILE_ROOT . 'espcms_install/db/';
if (!$_POST['db_istype'] || !espcms_ismatches($_POST['db_istype'])) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_install_read_err', 'false');
}
$db_file = $_POST['db_istype'] == 2 ? $db_path . $_POST['db_file'] . '/install.sql' : $db_path . $_POST['db_file'];
if (!is_file($db_file)) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_install_read_err', 'false');
}
if (!$_POST['limit_num'] || !espcms_ismatches($_POST['limit_num']) || !$_POST['pack_num'] || !espcms_ismatches($_POST['pack_num'])) {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_install_err', 'false');
}
if (file_exists(ESPCMS_FILE_ROOT . 'espcms_public/ESPCMS_Mysql.php')) {
require_once( ESPCMS_FILE_ROOT . 'espcms_public/ESPCMS_Mysql.php' );
}
$db_prefix = $espcms_setup_db['db_prefix'];
$espcms_link_db = new ESPCMS_Mysql($espcms_setup_db['db_host'], $espcms_setup_db['db_name'], $espcms_setup_db['db_user'], $espcms_setup_db['db_password'], 'utf8');
if ($_POST['limit_num'] == 1 && $espcms_setup_db['db_setuptype'] == 1) {
$db_sql = "SHOW TABLE STATUS LIKE '" . $db_prefix . "%'";
$db_query = $espcms_link_db->db_query($db_sql);
while ($fetch_row = $espcms_link_db->db_array_list($db_query)) {
$db_table = $fetch_row['Name'];
$drop_sql = "DROP TABLE IF EXISTS $db_table";
$espcms_link_db->db_query($drop_sql);
}
}
$updatesql = file_get_contents($db_file);
if ($_POST['db_istype'] == 2) {
$db_demo_file = $db_path . $_POST['db_file'] . '/db.sql';
if (is_file($db_demo_file)) {
$updatesql .= file_get_contents($db_demo_file);
}
}
if ($updatesql) {
$updatesql = str_replace("\r\n", "\n", $updatesql);
$ret = array();
$num = 0;
foreach (explode(";\n", trim($updatesql)) as $query) {
$ret[$num] = '';
$queries = explode("\n", trim($query));
foreach ($queries as $query) {
$ret[$num] .= ( isset($query[0]) && $query[0] == '#') || (isset($query[1]) && isset($query[1]) && $query[0] . $query[1] == '--') ? '' : $query;
}
$num++;
}
unset($updatesql);
foreach ($ret as $query) {
$query = trim($query);
if ($query) {
$query = str_replace('esp_', $db_prefix, $query);
$espcms_link_db->db_query($query);
}
}
if ($_POST['db_istype'] == 2) {
ESPCMS_FileTool::delFile($db_file);
}
} else {
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_install_err2', 'false');
}
if ($_POST['limit_num'] == $_POST['pack_num']) {
$admin_username = $espcms_setup_db['admin_username'] ? $espcms_setup_db['admin_username'] : 'admin';
$admin_password = $espcms_setup_db['admin_password'] ? md5($espcms_setup_db['admin_password']) : 'ad3357f54594b13cfc92d1948cdf510a';
$admin_email = $espcms_setup_db['admin_email'] ? $espcms_setup_db['admin_email'] : '';
$admin_name = $espcms_setup_user_info['username'] ? $espcms_setup_user_info['username'] : '';
$admin_intotime = time();
$install_db = "INSERT INTO " . $db_prefix . "admin_member (power_groups_id,admin_username,admin_password,admin_email,admin_name,admin_intotime,admin_isclass,admin_isremote) VALUES (1,'$admin_username','$admin_password','$admin_email','$admin_name',$admin_intotime,1,0)";
$espcms_link_db->db_query($install_db);
$ENCRYPT_CODE = md5(md5($espcms_setup_db['admin_password']) . random(12));
$table_config = $db_prefix . "config";
$db_update_sql = "UPDATE $table_config SET config_value='" . $espcms_setup_db['webname'] . "' WHERE config_name='SITENAME'";
$espcms_link_db->db_query($db_update_sql);
$db_update_sql = "UPDATE $table_config SET config_value='" . $admin_email . "' WHERE config_name='ADMINE_MAIL'";
$espcms_link_db->db_query($db_update_sql);
$db_update_sql = "UPDATE $table_config SET config_value='" . $ENCRYPT_CODE . "' WHERE config_name='CON_ENCRYPT_CODE'";
$espcms_link_db->db_query($db_update_sql);
$db_update_sql = "UPDATE $table_config SET config_value='" . $espcms_setup_user_info['uid'] . "' WHERE config_name='CON_DBOSN'";
$espcms_link_db->db_query($db_update_sql);
$db_update_sql = "UPDATE $table_config SET config_value='" . $espcms_db_version . "' WHERE config_name='CON_VOL'";
$espcms_link_db->db_query($db_update_sql);
$db_update_sql = "UPDATE $table_config SET config_value='" . $espcms_version . "' WHERE config_name='CON_VOLSTR'";
$espcms_link_db->db_query($db_update_sql);
$config_path = ESPCMS_FILE_ROOT . 'espcms_datacache/espcms_config.php';
$config_content = "<?php
define('ESPCMS_DB_HOST', '" . $espcms_setup_db['db_host'] . "');
define('ESPCMS_DB_USER', '" . $espcms_setup_db['db_user'] . "');
define('ESPCMS_DB_PASSWORD', '" . $espcms_setup_db['db_password'] . "');
define('ESPCMS_DB_NAME', '" . $espcms_setup_db['db_name'] . "');
define('ESPCMS_DB_CHARSET', 'utf8');
define('ESPCMS_DB_PREFIX', '" . $espcms_setup_db['db_prefix'] . "');
define('ESPCMS_DB_ERR', 0);
define('ESPCMS_DB_SQL', 0);
define('ESPCMS_DB_LINKTYPE', 1);
define('ESPCMS_ENCRYPT_CODE', '$ENCRYPT_CODE');";
ESPCMS_FileTool::writeFile($config_path, $config_content);
$installlock = ESPCMS_FILE_ROOT . 'espcms_datacache/install.lock';
if (!file_exists($installlock)) {
touch($installlock);
}
}
espcms_public_dialog('espcms_public_dialog', 'setup_pack-espcms_lable_install_ok', 'true', array(), 'json', $espcms_setup_db);
}
public static function in_SetupOk() {
global $espcms_web_templates;
$espcms_setup_user_info = $_COOKIE['espcms_setup_user_info'] ? unserialize(stripslashes($_COOKIE['espcms_setup_user_info'])) : '';
if (!$espcms_setup_user_info || !is_array($espcms_setup_user_info)) {
espcms_message_err('setup_pack-espcms_lable_setup_login_err2');
}
$espcms_setup_db = $_COOKIE['espcms_setup_db'] ? unserialize(stripslashes($_COOKIE['espcms_setup_db'])) : '';
if (!$espcms_setup_db || !is_array($espcms_setup_db)) {
espcms_message_err('setup_pack-espcms_lable_setup_setting_db_input_err');
}
if ($_COOKIE['espcms_setup_db_file']) {
espcms_set_cookie('espcms_setup_db_file', false);
}
if (file_exists(ESPCMS_FILE_ROOT . 'espcms_datacache/espcms_config.php')) {
require_once( ESPCMS_FILE_ROOT . 'espcms_datacache/espcms_config.php' );
} else {
exit('错误:数据库文件错误');
}
if (file_exists(ESPCMS_FILE_ROOT . 'espcms_includes/espcms_version.php')) {
require_once(ESPCMS_FILE_ROOT . 'espcms_includes/espcms_version.php');
} else {
exit('错误:版本配置文件不存在');
}
require_once(ESPCMS_FILE_ROOT . 'espcms_public/espcms_variable.php');
require_once(ESPCMS_FILE_ROOT . 'espcms_public/espcms_constant.php');
require_once(ESPCMS_FILE_ROOT . 'espcms_public/espcms_function.php');
espcms_bug_mode();
espcms_load_constant();
espcms_cache_constant();
$_SERVER = espcms_server_vars();
global $espcms_version, $espcms_db_version, $espcms_tinymce_version, $loading_php_version, $loading_mysql_version;
espcms_loadcheck_php_versions();
require_espcms_link_db();
espcms_command();
$espcms_web_templates->into('userinfo', $espcms_setup_user_info);
$espcms_web_templates->into('link', SetupLink::get_link());
$espcms_web_templates->into('path', 'setupok');
$espcms_web_templates->output('index', 'index', false, false);
}
}