\n"; $str .= "\t\n"; $str .= ""; echo $str; exit; } else { show_header(); global $step; $title = lang($error_no); $comment = lang($error_no.'_comment', false); $errormsg = ''; if($error_msg) { if(!empty($error_msg)) { foreach ((array)$error_msg as $k => $v) { if(is_numeric($k)) { $comment .= "
  • ".lang($v)."
  • "; } } } } if($step > 0) { echo "
    $title"; } else { echo "
    $title"; } if($quit) { echo '
    '.lang('error_quit_msg').'


    '; } echo '


    '; echo '
    '; $quit && show_footer(); } } function check_db($dbhost, $dbuser, $dbpw, $dbname, $tablepre) { if(!function_exists('mysql_connect') && !function_exists('mysqli_connect')) { show_msg('undefine_func', 'mysql_connect', 0); } $mysqlmode = function_exists('mysql_connect') ? 'mysql' : 'mysqli'; $link = ($mysqlmode == 'mysql') ? @mysql_connect($dbhost, $dbuser, $dbpw) : new mysqli($dbhost, $dbuser, $dbpw); if(!$link) { $errno = ($mysqlmode == 'mysql') ? mysql_errno() : mysqli_errno(); $error = ($mysqlmode == 'mysql') ? mysql_error() : mysqli_error(); if($errno == 1045) { show_msg('database_errno_1045', $error, 0); } elseif($errno == 2003) { show_msg('database_errno_2003', $error, 0); } else { show_msg('database_connect_error', $error, 0); } } else { if($query = (($mysqlmode == 'mysql') ? @mysql_query("SHOW TABLES FROM $dbname") : $link->query("SHOW TABLES FROM $dbname"))) { if(!$query) { return false; } while($row = (($mysqlmode == 'mysql') ? mysql_fetch_row($query) : $query->fetch_row())) { if(preg_match("/^$tablepre/", $row[0])) { return false; } } } } return true; } function dirfile_check(&$dirfile_items) { foreach($dirfile_items as $key => $item) { $item_path = $item['path']; if($item['type'] == 'dir') { if(!dir_writeable(ROOT_PATH.$item_path)) { if(is_dir(ROOT_PATH.$item_path)) { $dirfile_items[$key]['status'] = 0; $dirfile_items[$key]['current'] = '+r'; } else { $dirfile_items[$key]['status'] = -1; $dirfile_items[$key]['current'] = 'nodir'; } } else { $dirfile_items[$key]['status'] = 1; $dirfile_items[$key]['current'] = '+r+w'; } } else { if(file_exists(ROOT_PATH.$item_path)) { if(is_writable(ROOT_PATH.$item_path)) { $dirfile_items[$key]['status'] = 1; $dirfile_items[$key]['current'] = '+r+w'; } else { $dirfile_items[$key]['status'] = 0; $dirfile_items[$key]['current'] = '+r'; } } else { if(dir_writeable(dirname(ROOT_PATH.$item_path))) { $dirfile_items[$key]['status'] = 1; $dirfile_items[$key]['current'] = '+r+w'; } else { $dirfile_items[$key]['status'] = -1; $dirfile_items[$key]['current'] = 'nofile'; } } } } } function env_check(&$env_items) { foreach($env_items as $key => $item) { if($key == 'php') { $env_items[$key]['current'] = PHP_VERSION; } elseif($key == 'attachmentupload') { $env_items[$key]['current'] = @ini_get('file_uploads') ? ini_get('upload_max_filesize') : 'unknow'; } elseif($key == 'gdversion') { $tmp = function_exists('gd_info') ? gd_info() : array(); $env_items[$key]['current'] = empty($tmp['GD Version']) ? 'noext' : $tmp['GD Version']; unset($tmp); } elseif($key == 'diskspace') { if(function_exists('disk_free_space')) { $env_items[$key]['current'] = floor(disk_free_space(ROOT_PATH) / (1024*1024)).'M'; } else { $env_items[$key]['current'] = 'unknow'; } } elseif(isset($item['c'])) { $env_items[$key]['current'] = constant($item['c']); } $env_items[$key]['status'] = 1; if($item['r'] != 'notset' && strcmp($env_items[$key]['current'], $item['r']) < 0) { $env_items[$key]['status'] = 0; } } } function function_check(&$func_items) { foreach($func_items as $item) { function_exists($item) or show_msg('undefine_func', $item, 0); } } function show_env_result(&$env_items, &$dirfile_items, &$func_items) { $env_str = $file_str = $dir_str = $func_str = ''; $error_code = 0; foreach($env_items as $key => $item) { if($key == 'php' && strcmp($item['current'], $item['r']) < 0) { show_msg('php_version_too_low', $item['current'], 0); } $status = 1; if($item['r'] != 'notset') { if(intval($item['current']) && intval($item['r'])) { if(intval($item['current']) < intval($item['r'])) { $status = 0; $error_code = ENV_CHECK_ERROR; } } else { if(strcmp($item['current'], $item['r']) < 0) { $status = 0; $error_code = ENV_CHECK_ERROR; } } } if(VIEW_OFF) { $env_str .= "\t\t\n"; } else { $env_str .= "\n"; $env_str .= "".lang($key)."\n"; $env_str .= "".lang($item['r'])."\n"; $env_str .= "".lang($item['b'])."\n"; $env_str .= ($status ? "" : "").$item['current']."\n"; $env_str .= "\n"; } } foreach($dirfile_items as $key => $item) { $tagname = $item['type'] == 'file' ? 'File' : 'Dir'; $variable = $item['type'].'_str'; if(VIEW_OFF) { if($item['status'] == 0) { $error_code = ENV_CHECK_ERROR; } $$variable .= "\t\t\t\n"; } else { $$variable .= "\n"; $$variable .= "$item[path]".lang('writeable')."\n"; if($item['status'] == 1) { $$variable .= "".lang('writeable')."\n"; } elseif($item['status'] == -1) { $error_code = ENV_CHECK_ERROR; $$variable .= "".lang('nodir')."\n"; } else { $error_code = ENV_CHECK_ERROR; $$variable .= "".lang('unwriteable')."\n"; } $$variable .= "\n"; } } if(VIEW_OFF) { $str = "\n"; $str .= "\t\n"; $str .= $env_str; $str .= "\t\n"; $str .= "\t\n"; $str .= "\t\t\n"; $str .= $dir_str; $str .= "\t\t\n"; $str .= "\t\t\n"; $str .= $file_str; $str .= "\t\t\n"; $str .= "\t\n"; $str .= "\t\n"; $str .= ""; echo $str; exit; } else { show_header(); echo "

    ".lang('env_check')."

    \n"; echo "\n"; echo "\n"; echo "\t\n"; echo "\t\n"; echo "\t\n"; echo "\t\n"; echo "\n"; echo $env_str; echo "
    ".lang('project')."".lang('ucenter_required')."".lang('ucenter_best')."".lang('curr_server')."
    \n"; echo "

    ".lang('priv_check')."

    \n"; echo "\n"; echo "\t\n"; echo "\t\n"; echo "\t\n"; echo "\t\n"; echo "\n"; echo $file_str; echo $dir_str; echo "
    ".lang('step1_file')."".lang('step1_need_status')."".lang('step1_status')."
    \n"; foreach($func_items as $item) { $status = function_exists($item); $func_str .= "\n"; $func_str .= "$item()\n"; if($status) { $func_str .= "".lang('supportted')."\n"; $func_str .= "".lang('none')."\n"; } else { $error_code = ENV_CHECK_ERROR; $func_str .= "".lang('unsupportted')."\n"; $func_str .= "".lang('advice_'.$item)."\n"; } } echo "

    ".lang('func_depend')."

    \n"; echo "\n"; echo "\n"; echo "\t\n"; echo "\t\n"; echo "\t\n"; echo "\n"; echo $func_str; echo "
    ".lang('func_name')."".lang('check_result')."".lang('suggestion')."
    \n"; show_next_step(2, $error_code); show_footer(); } } function show_next_step($step, $error_code) { echo "
    \n"; echo ""; if(isset($GLOBALS['hidden'])) { echo $GLOBALS['hidden']; } if($error_code == 0) { $nextstep = "\n"; } else { $nextstep = "\n"; } echo "
    ".$nextstep."
    \n"; echo "
    \n"; } function show_form(&$form_items, $error_msg) { global $step; if(empty($form_items) || !is_array($form_items)) { return; } show_header(); show_setting('start'); show_setting('hidden', 'step', $step); $is_first = 1; foreach($form_items as $key => $items) { global ${'error_'.$key}; if($is_first == 0) { echo ''; } if(!${'error_'.$key}) { show_tips('tips_'.$key); } else { show_error('tips_admin_config', ${'error_'.$key}); } if($is_first == 0) { echo ''; } foreach($items as $k => $v) { global $$k; if(!empty($error_msg)) { $value = isset($_POST[$key][$k]) ? $_POST[$key][$k] : ''; } else { if(isset($v['value']) && is_array($v['value'])) { if($v['value']['type'] == 'constant') { $value = defined($v['value']['var']) ? constant($v['value']['var']) : ''; } elseif($v['value']['type'] == 'var') { $value = $GLOBALS[$v['value']['var']]; } elseif($v['value']['type'] == 'string') { $value = $v['value']['var']; } } else { $value = ''; } } if($v['type'] == 'checkbox') { $value = '1'; } show_setting($k, $key.'['.$k.']', $value, $v['type'], isset($error_msg[$key][$k]) ? $key.'_'.$k.'_invalid' : ''); } if($is_first) { $is_first = 0; } } show_setting('', 'submitname', 'new_step', 'submit'); show_setting('end'); show_footer(); } function show_license() { global $self, $uchidden, $step; $next = $step + 1; if(VIEW_OFF) { show_msg('license_contents', lang('license'), 1); } else { show_header(); $license = str_replace(' ', '  ', lang('license')); $lang_agreement_yes = lang('agreement_yes'); $lang_agreement_no = lang('agreement_no'); echo <<
    $license
    $uchidden  
    EOT; show_footer(); } } if(!function_exists('file_put_contents')) { function file_put_contents($filename, $s) { $fp = @fopen($filename, 'w'); @fwrite($fp, $s); @fclose($fp); return TRUE; } } function createtable($sql) { $type = strtoupper(preg_replace("/^\s*CREATE TABLE\s+.+\s+\(.+?\).*(ENGINE|TYPE)\s*=\s*([a-z]+?).*$/isU", "\\2", $sql)); $type = in_array($type, array('MYISAM', 'HEAP')) ? $type : 'MYISAM'; return preg_replace("/^\s*(CREATE TABLE\s+.+\s+\(.+?\)).*$/isU", "\\1", $sql). (mysql_get_server_info() > '4.1' ? " ENGINE=$type DEFAULT CHARSET=".DBCHARSET : " TYPE=$type"); } function dir_writeable($dir) { $writeable = 0; if(!is_dir($dir)) { @mkdir($dir, 0777); } if(is_dir($dir)) { if($fp = @fopen("$dir/test.txt", 'w')) { @fclose($fp); @unlink("$dir/test.txt"); $writeable = 1; } else { $writeable = 0; } } return $writeable; } function dir_clear($dir) { global $lang; showjsmessage($lang['clear_dir'].' '.str_replace(ROOT_PATH, '', $dir)); $directory = dir($dir); while($entry = $directory->read()) { $filename = $dir.'/'.$entry; if(is_file($filename)) { @unlink($filename); } } $directory->close(); @touch($dir.'/index.htm'); } function show_header() { define('SHOW_HEADER', TRUE); global $step; $version = SOFT_VERSION; $release = SOFT_RELEASE; $install_lang = lang(INSTALL_LANG); $title = lang('title_install'); $charset = CHARSET; echo << $title

    $title

    V$version $install_lang $release EOT; $step > 0 && show_step($step); } function show_footer($quit = true) { echo <<©2001 - 2017 Comsenz Inc.
    EOT; $quit && exit(); } function loginit($logfile) { global $lang; showjsmessage($lang['init_log'].' '.$logfile); if($fp = @fopen('./forumdata/logs/'.$logfile.'.php', 'w')) { fwrite($fp, '<'.'?PHP exit(); ?'.">\n"); fclose($fp); } } function showjsmessage($message) { if(VIEW_OFF) return; echo ''."\r\n"; flush(); ob_flush(); } function random($length) { $hash = ''; $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; $max = strlen($chars) - 1; PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000); for($i = 0; $i < $length; $i++) { $hash .= $chars[mt_rand(0, $max)]; } return $hash; } function redirect($url) { echo ""; exit(); } function get_onlineip() { $onlineip = ''; if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $onlineip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) { $onlineip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { $onlineip = getenv('REMOTE_ADDR'); } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { $onlineip = $_SERVER['REMOTE_ADDR']; } return $onlineip; } function config_edit() { extract($GLOBALS, EXTR_SKIP); $ucsalt = substr(uniqid(rand()), 0, 6); $ucfounderpw= md5(md5($ucfounderpw).$ucsalt); $regdate = time(); $ucauthkey = generate_key(); $ucsiteid = generate_key(); $ucmykey = generate_key(); $config = " 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) { return substr($result, 26); } else { return ''; } } else { return $keyc.str_replace('=', '', base64_encode($result)); } } function generate_key() { $random = random(32); $info = md5($_SERVER['SERVER_SOFTWARE'].$_SERVER['SERVER_NAME'].$_SERVER['SERVER_ADDR'].$_SERVER['SERVER_PORT'].$_SERVER['HTTP_USER_AGENT'].time()); $return = ''; for($i=0; $i<64; $i++) { $p = intval($i/2); $return[$i] = $i % 2 ? $random[$p] : $info[$p]; } return implode('', $return); } function show_install() { if(VIEW_OFF) return; ?>
    query(createtable($query)); } else { $db->query($query); } } } } function charcovert($string) { if(!get_magic_quotes_gpc()) { $string = str_replace('\'', '\\\'', $string); } else { $string = str_replace('\"', '"', $string); } return $string; } function insertconfig($s, $find, $replace) { if(preg_match($find, $s)) { $s = preg_replace($find, $replace, $s); } else { $s .= "\r\n".$replace; } return $s; } function getgpc($k, $t='GP') { $t = strtoupper($t); switch($t) { case 'GP' : isset($_POST[$k]) ? $var = &$_POST : $var = &$_GET; break; case 'G': $var = &$_GET; break; case 'P': $var = &$_POST; break; case 'C': $var = &$_COOKIE; break; case 'R': $var = &$_REQUEST; break; } return isset($var[$k]) ? $var[$k] : ''; } function var_to_hidden($k, $v) { return "\n"; } function fsocketopen($hostname, $port = 80, &$errno, &$errstr, $timeout = 15) { $fp = ''; if(function_exists('fsockopen')) { $fp = @fsockopen($hostname, $port, $errno, $errstr, $timeout); } elseif(function_exists('pfsockopen')) { $fp = @pfsockopen($hostname, $port, $errno, $errstr, $timeout); } elseif(function_exists('stream_socket_client')) { $fp = @stream_socket_client($hostname.':'.$port, $errno, $errstr, $timeout); } return $fp; } function dfopen($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE, $ip = '', $timeout = 15, $block = TRUE) { $return = ''; $matches = parse_url($url); $scheme = $matches['scheme']; $host = $matches['host']; $path = $matches['path'] ? $matches['path'].(isset($matches['query']) && $matches['query'] ? '?'.$matches['query'] : '') : '/'; $port = !empty($matches['port']) ? $matches['port'] : 80; if($post) { $out = "POST $path HTTP/1.0\r\n"; $header = "Accept: */*\r\n"; $header .= "Accept-Language: zh-cn\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n"; $header .= "Host: $host\r\n"; $header .= 'Content-Length: '.strlen($post)."\r\n"; $header .= "Connection: Close\r\n"; $header .= "Cache-Control: no-cache\r\n"; $header .= "Cookie: $cookie\r\n\r\n"; $out .= $header.$post; } else { $out = "GET $path HTTP/1.0\r\n"; $header = "Accept: */*\r\n"; $header .= "Accept-Language: zh-cn\r\n"; $header .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n"; $header .= "Host: $host\r\n"; $header .= "Connection: Close\r\n"; $header .= "Cookie: $cookie\r\n\r\n"; $out .= $header; } $fpflag = 0; if(!$fp = @fsocketopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout)) { $context = array( 'http' => array( 'method' => $post ? 'POST' : 'GET', 'header' => $header, 'content' => $post, 'timeout' => $timeout, ), ); $context = stream_context_create($context); $fp = @fopen($scheme.'://'.($ip ? $ip : $host).':'.$port.$path, 'b', false, $context); $fpflag = 1; } if(!$fp) { return ''; } else { stream_set_blocking($fp, $block); stream_set_timeout($fp, $timeout); @fwrite($fp, $out); $status = stream_get_meta_data($fp); if(!$status['timed_out']) { while (!feof($fp) && !$fpflag) { if(($header = @fgets($fp)) && ($header == "\r\n" || $header == "\n")) { break; } } $stop = false; while(!feof($fp) && !$stop) { $data = fread($fp, ($limit == 0 || $limit > 8192 ? 8192 : $limit)); $return .= $data; if($limit) { $limit -= strlen($data); $stop = $limit <= 0; } } } @fclose($fp); return $return; } } function check_env() { global $lang, $attachdir; $errors = array('quit' => false); $quit = false; if(!function_exists('mysql_connect')) { $errors[] = 'mysql_unsupport'; $quit = true; } if(PHP_VERSION < '4.3') { $errors[] = 'php_version_430'; $quit = true; } if(!file_exists(DISCUZ_ROOT.'./config.inc.php')) { $errors[] = 'config_nonexistence'; $quit = true; } elseif(!is_writeable(DISCUZ_ROOT.'./config.inc.php')) { $errors[] = 'config_unwriteable'; $quit = true; } $checkdirarray = array( 'attach' => $attachdir, 'forumdata' => './forumdata', 'cache' => './forumdata/cache', 'ftemplates' => './forumdata/templates', 'threadcache' => './forumdata/threadcaches', 'log' => './forumdata/logs', 'uccache' => './uc_client/data/cache' ); foreach($checkdirarray as $key => $dir) { if(!dir_writeable(DISCUZ_ROOT.$dir)) { $langkey = $key.'_unwriteable'; $errors[] = $key.'_unwriteable'; if(!in_array($key, array('ftemplate'))) { $quit = TRUE; } } } $errors['quit'] = $quit; return $errors; } function show_error($type, $errors = '', $quit = false) { global $lang, $step; $title = lang($type); $comment = lang($type.'_comment', false); $errormsg = ''; if($errors) { if(!empty($errors)) { foreach ((array)$errors as $k => $v) { if(is_numeric($k)) { $comment .= "
  • ".lang($v)."
  • "; } } } } if($step > 0) { echo "
    $title
      $comment
    "; } else { echo "
    $title
      $comment
    "; } if($quit) { echo '
    '.$lang['error_quit_msg'].'





    '; } echo '
    '; $quit && show_footer(); } function show_tips($tip, $title = '', $comment = '', $style = 1) { global $lang; $title = empty($title) ? lang($tip) : $title; $comment = empty($comment) ? lang($tip.'_comment', FALSE) : $comment; if($style) { echo "
    $title"; } else { echo "
    $title
      "; } $comment && print('
      '.$comment); echo "
    "; } function show_setting($setname, $varname = '', $value = '', $type = 'text|password|checkbox', $error = '') { if($setname == 'start') { echo "
    \n
    \n"; return; } elseif($setname == 'end') { echo "\n
    \n\n"; return; } elseif($setname == 'hidden') { echo "\n"; return; } echo "\n".' '.(empty($setname) ? '' : lang($setname).':')."\n"; if($type == 'text' || $type == 'password') { $value = dhtmlspecialchars($value); echo ""; } elseif($type == 'submit') { $value = empty($value) ? 'next_step' : $value; echo "\n"; } elseif($type == 'checkbox') { if(!is_array($varname) && !is_array($value)) { echo'\n"; } } else { echo $value; } echo "\n "; if($error) { $comment = ''.(is_string($error) ? lang($error) : lang($setname.'_error')).''; } else { $comment = lang($setname.'_comment', false); } echo "$comment\n\n"; return true; } function show_step($step) { global $method; $laststep = 4; $title = lang('step_'.$method.'_title'); $comment = lang('step_'.$method.'_desc'); $stepclass = array(); for($i = 1; $i <= $laststep; $i++) { $stepclass[$i] = $i == $step ? 'current' : ($i < $step ? '' : 'unactivated'); } $stepclass[$laststep] .= ' last'; echo <<

    $title

    $comment

    • 1
    • 2
    • 3
    • 4
    EOT; } function lang($lang_key, $force = true) { return isset($GLOBALS['lang'][$lang_key]) ? $GLOBALS['lang'][$lang_key] : ($force ? $lang_key : ''); } function check_adminuser($username, $password, $email) { @include ROOT_PATH.'./config.inc.php'; include ROOT_PATH.'./uc_client/client.php'; $error = ''; $uid = uc_user_register($username, $password, $email); if($uid == -1 || $uid == -2) { $error = 'admin_username_invalid'; } elseif($uid == -4 || $uid == -5 || $uid == -6) { $error = 'admin_email_invalid'; } elseif($uid == -3) { $ucresult = uc_user_login($username, $password); list($tmp['uid'], $tmp['username'], $tmp['password'], $tmp['email']) = uc_addslashes($ucresult); $ucresult = $tmp; if($ucresult['uid'] <= 0) { $error = 'admin_exist_password_error'; } else { $uid = $ucresult['uid']; $email = $ucresult['email']; $password = $ucresult['password']; } } if(!$error && $uid > 0) { $password = md5($password); uc_user_addprotected($username, ''); } else { $uid = 0; $error = empty($error) ? 'error_unknow_type' : $error; } return array('uid' => $uid, 'username' => $username, 'password' => $password, 'email' => $email, 'error' => $error); } function save_uc_config($config, $file) { $success = false; list($appauthkey, $appid, $ucdbhost, $ucdbname, $ucdbuser, $ucdbpw, $ucdbcharset, $uctablepre, $uccharset, $ucapi, $ucip) = explode('|', $config); if($content = file_get_contents($file)) { $content = trim($content); $content = substr($content, -2) == '?>' ? substr($content, 0, -2) : $content; $link = mysql_connect($ucdbhost, $ucdbuser, $ucdbpw, 1); $uc_connnect = $link && mysql_select_db($ucdbname, $link) ? 'mysql' : ''; $content = insertconfig($content, "/define\('UC_CONNECT',\s*'.*?'\);/i", "define('UC_CONNECT', '$uc_connnect');"); $content = insertconfig($content, "/define\('UC_DBHOST',\s*'.*?'\);/i", "define('UC_DBHOST', '$ucdbhost');"); $content = insertconfig($content, "/define\('UC_DBUSER',\s*'.*?'\);/i", "define('UC_DBUSER', '$ucdbuser');"); $content = insertconfig($content, "/define\('UC_DBPW',\s*'.*?'\);/i", "define('UC_DBPW', '$ucdbpw');"); $content = insertconfig($content, "/define\('UC_DBNAME',\s*'.*?'\);/i", "define('UC_DBNAME', '$ucdbname');"); $content = insertconfig($content, "/define\('UC_DBCHARSET',\s*'.*?'\);/i", "define('UC_DBCHARSET', '$ucdbcharset');"); $content = insertconfig($content, "/define\('UC_DBTABLEPRE',\s*'.*?'\);/i", "define('UC_DBTABLEPRE', '`$ucdbname`.$uctablepre');"); $content = insertconfig($content, "/define\('UC_DBCONNECT',\s*'.*?'\);/i", "define('UC_DBCONNECT', '0');"); $content = insertconfig($content, "/define\('UC_KEY',\s*'.*?'\);/i", "define('UC_KEY', '$appauthkey');"); $content = insertconfig($content, "/define\('UC_API',\s*'.*?'\);/i", "define('UC_API', '$ucapi');"); $content = insertconfig($content, "/define\('UC_CHARSET',\s*'.*?'\);/i", "define('UC_CHARSET', '$uccharset');"); $content = insertconfig($content, "/define\('UC_IP',\s*'.*?'\);/i", "define('UC_IP', '$ucip');"); $content = insertconfig($content, "/define\('UC_APPID',\s*'?.*?'?\);/i", "define('UC_APPID', '$appid');"); $content = insertconfig($content, "/define\('UC_PPP',\s*'?.*?'?\);/i", "define('UC_PPP', '20');"); if(@file_put_contents($file, $content)) { $success = true; } } return $success; } function dhtmlspecialchars($string, $flags = null) { if(is_array($string)) { foreach($string as $key => $val) { $string[$key] = dhtmlspecialchars($val, $flags); } } else { if($flags === null) { $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string); if(strpos($string, '&#') !== false) { $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1', $string); } } else { if(PHP_VERSION < '5.4.0') { $string = htmlspecialchars($string, $flags); } else { if(strtolower(CHARSET) == 'utf-8') { $charset = 'UTF-8'; } else { $charset = 'ISO-8859-1'; } $string = htmlspecialchars($string, $flags, $charset); } } } return $string; }