⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.php

📁 论坛代码网增加免费空间业务
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php

/*
[Discuz!] (C)2001-2007 Comsenz Inc.
This is NOT a freeware, use is subject to license terms

$Id: index.php 13624 2008-04-29 02:33:39Z heyond $
*/

error_reporting(E_ERROR | E_WARNING | E_PARSE);

@ob_start();

@set_time_limit(1000);
set_magic_quotes_runtime(0);

define('IN_DISCUZ', TRUE);

define('DISCUZ_ROOT', '../');

require DISCUZ_ROOT.'./discuz_version.php';
require DISCUZ_ROOT.'./include/db_mysql.class.php';
require DISCUZ_ROOT.'./install/install.lang.php';
require DISCUZ_ROOT.'./install/install.func.php';

require DISCUZ_ROOT.'./install/install.config.php';

$self = basename(__FILE__);
$attachdir = './attachments';
$attachurl = 'attachments';

$step = intval(getgpc('step', 'R')) ? intval(getgpc('step', 'R')) : 0;

$sqlfile = DISCUZ_ROOT.'./install/discuz.sql';
$lockfile = DISCUZ_ROOT.'./forumdata/install.lock';

@include DISCUZ_ROOT.'./config.inc.php';
if(!defined('UC_API')) {
	define('UC_API', '');
}

show_header();

foreach (array('dbhost', 'dbuser', 'dbpw', 'dbname', 'tablepre', 'dbcharset', 'charset') as $key) {
	if(!isset($$key)) {
		show_error('error_config_vars', array(), true);
	}
}

if(!ini_get('short_open_tag')) {
	show_error('short_open_tag_invalid', '', true);
} elseif(file_exists($lockfile)) {
	show_error('install_locked', '', true);
} elseif(!class_exists('dbstuff')) {
	show_error('database_nonexistence', '', true);
}

if(empty($dbcharset) && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8'))) {
	$dbcharset = str_replace('-', '', $charset);
}

$uchidden = '';
if(getgpc('ucapi', 'p')) {
	$uchidden = var_to_hidden('ucapi', getgpc('ucapi', 'p'));
	$uchidden .= var_to_hidden('appurl', getgpc('appurl', 'p'));
	$uchidden .= var_to_hidden('ucfounderpw', getgpc('ucfounderpw', 'p'));
}

if($step == 0) {
	show_license();
} elseif($step == 1) {

	$PHP_SELF = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
	$bbserver = 'http://'.preg_replace("/\:\d+/", '', $_SERVER['HTTP_HOST']).($_SERVER['SERVER_PORT'] && $_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : '');
	$default_ucapi = $bbserver.'/ucenter';
	$default_appurl = $bbserver.substr($PHP_SELF, 0, strpos($PHP_SELF, 'install/') - 1);

	$envsubmit = getgpc('envsubmit', 'P');

	if(!$envsubmit) {
		$errors = check_env();
		$quit = $errors['quit'];
		unset($errors['quit']);
		if($errors) {
			show_error('error_env', $errors, $quit);
		}
	}

	$errors = array();
	$dns_error = false;

	$app_type = 'DISCUZ'; // Only For Discuz!
	$app_charset = $charset;
	$app_dbcharset = $dbcharset;

	$app_name = getgpc('app_name') ? getgpc('app_name') : 'Discuz! Board';
	$app_url = getgpc('app_url') ? getgpc('app_url') : $default_appurl;

	$ucapi = getgpc('ucapi', 'P') ? getgpc('ucapi', 'P') : (defined('UC_API') && UC_API ? UC_API : $default_ucapi);
	$ucip = getgpc('ucip', 'P');
	$ucfounderpw = getgpc('ucfounderpw', 'P');
	$app_tagtemplates = 'apptagtemplates[template]='.urlencode('<a href="{url}" target="_blank">{subject}</a>').'&'.
	'apptagtemplates[fields][subject]='.urlencode($lang['tagtemplates_subject']).'&'.
	'apptagtemplates[fields][uid]='.urlencode($lang['tagtemplates_uid']).'&'.
	'apptagtemplates[fields][username]='.urlencode($lang['tagtemplates_username']).'&'.
	'apptagtemplates[fields][dateline]='.urlencode($lang['tagtemplates_dateline']).'&'.
	'apptagtemplates[fields][url]='.urlencode($lang['tagtemplates_url']);

	if($envsubmit) {
		$ucapi = preg_replace("/\/$/", '', trim($ucapi));
		if(empty($ucapi) || !preg_match("/^(http:\/\/)/i", $ucapi)) {
			$errors['uc_url'] = 'uc_url_invalid';
		} else {
			if(!$ucip) {
				$temp = @parse_url($ucapi);
				
				$ucip = gethostbyname($temp['host']);
				if(ip2long($ucip) == -1 || ip2long($ucip) === FALSE) {
					$ucip = '';
					$dns_error = true;
				}
			}
		}
		$connect_error = false;
		if(!$errors && !$dns_error) {
			include_once DISCUZ_ROOT.'./uc_client/client.php';
			
			$ucinfo = dfopen($ucapi.'/index.php?m=app&a=ucinfo', 500, '', '', 1, $ucip);
			list($status, $ucversion, $ucrelease, $uccharset, $ucdbcharset, $apptypes) = explode('|', $ucinfo);
			if($status != 'UC_STATUS_OK') {
				$ucip = '';
				$connect_error = true;
				$errors['uc_url'] = 'uc_url_unreachable';
			} else {
				$dbcharset = strtolower($dbcharset ? str_replace('-', '', $dbcharset) : $dbcharset);
				$ucdbcharset = strtolower($ucdbcharset ? str_replace('-', '', $ucdbcharset) : $ucdbcharset);
				if(UC_VERSION > $ucversion) {
					show_error('uc_version_incorrect', '', TRUE);
				} elseif($dbcharset && $ucdbcharset != $dbcharset) {
					show_error('uc_dbcharset_incorrect', '', TRUE);
				}
	
				$postdata = "m=app&a=add&ucfounder=&ucfounderpw=".urlencode($ucfounderpw)."&apptype=".urlencode($app_type)."&appname=".urlencode($app_name)."&appurl=".urlencode($app_url)."&appip=&appcharset=".$app_charset.'&appdbcharset='.$app_dbcharset.'&'.$app_tagtemplates;
				$ucconfig = dfopen($ucapi.'/index.php', 500, $postdata, '', 1, $ucip);
				if(empty($ucconfig)) {
					$errors['uc_url'] = lang('');
				} elseif($ucconfig == '-1') {
					$errors['uc_adminpw'] = 'uc_admin_invalid';
				} else {
					list($appauthkey, $appid) = explode('|', $ucconfig);
					if(empty($appauthkey) || empty($appid)) {
						$errors['uc_url'] = 'uc_data_invalid';
					}elseif($succeed = save_uc_config($ucconfig."|$ucapi|$ucip", DISCUZ_ROOT.'./config.inc.php')) {
						redirect($self.'?step='.($step + 1));
					} else {
						$errors[] = 'config_unwriteable';
					}
				}
			}
		}
	}

	show_tips('tips_uc_install');
	show_error('', $errors);

	show_setting('start');
	show_setting('uc_url', 'ucapi', $ucapi, 'text', $errors['uc_url']);
	($dns_error || $connect_error) && show_setting('uc_ip', 'ucip', $ucip, 'text', true);
	show_setting('uc_adminpw', 'ucfounderpw', $ucfounderpw, 'password', $errors['uc_adminpw']);
	show_setting('uc_app_name', 'app_name', $app_name, 'text');
	show_setting('uc_app_url', 'app_url', $app_url, 'text');
	show_setting('', 'envsubmit', $lang['new_step'], 'submit');
	show_setting('hidden', 'step', $step);
	show_setting('end');

	show_footer();

} elseif($step == 2) {

	$error_config = $error_admin = $adminuser = array();
	$showforceinstall = false;

	if($_POST['boardsubmit']) {

		$dbhost = charcovert(getgpc('dbhost', 'p'));
		$dbuser = charcovert(getgpc('dbuser', 'p'));
		$dbpw = charcovert(getgpc('dbpw', 'p'));
		$dbname = charcovert(getgpc('dbname', 'p'));
		$adminemail = charcovert(getgpc('adminemail', 'p'));
		$tablepre = charcovert(getgpc('tablepre', 'p'));
		$forceinstall = getgpc('forceinstall', p);

		if(empty($dbname)) {
			$error_config['dbname'] = 'dbname_invalid';
		} else {
			if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
				$errno = mysql_errno();
				if($errno == 1045) {
					$error_config['dbuser'] = 1;
					$error_config['dbpw'] = 1;
				} elseif($errno == 2003) {
					$error_config['dbhost'] = 1;
				} else {
					$error_config[] = 'database_errno_'.$errno;
				}
			} 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()) {
					$error_config[] = 'database_errno_'.mysql_errno();
				} else {
					$result = mysql_query("SELECT COUNT(*) FROM `$dbname`.{$tablepre}settings");
					if($result && !$forceinstall) {
						$error_config['forceinstall'] = true;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -