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

📄 install.php

📁 套中小型企业网站建设
💻 PHP
字号:
<?php
//====================================================
//		FileName:install.php
//		Summary: 安装配置文件
//		Author: ice_berg16(寻梦的稻草人)
//		CreateTime: 2004-11-05     
//		LastModifed:2004-11-05
//		copyright(c)2004 ice_berg16@163.com
//====================================================

require_once("config.php");
require_once(IB_CLASS_PATH . "validate.inc.php");
//安装的第几步骤
$step = empty($_POST['step']) ? 1 : $_POST['step'];
//显示信息数组
$successList = $errorList = array();

function installDB($DBFile)
{
	global $successList, $errorList;
	//读取数据
	if(function_exists("file_get_contents"))
	{
		$sqlstr = file_get_contents(IB_ROOT . "db/" . $DBFile);
	}
	else
	{
		$sqlstr = join("", file(IB_ROOT . "db/" . $DBFile));
	}
	$sqlstr = str_replace("\r","\n", $sqlstr);
	$sqlArray = explode(";\n", $sqlstr);

	mysql_connect(DB_HOST,DB_USER,DB_PWD);
	mysql_select_db(DB_NAME);
    foreach($sqlArray as $sql)
    {
		$sql = preg_replace("|#.+#|s", "", $sql);
        if(preg_match('/CREATE TABLE `(.*)`/iU',$sql,$tblarr))
        {
			//数据表存在则先删除原来的
			$tblName = $tblarr[1];
			mysql_query("DROP TABLE $tblName");
			      	
			if(!mysql_query($sql))
			{
				$errorList[] = array("message" => "数据表$tblName  安装失败");
			}
        }
		else	//添加记录的查询语句
		{
			if(!mysql_query($sql))
			{
				$errorList[] = array("message" => "初始化数据记录时失败");
			}
		}

    }
}

/* 函数 configSYS($fileName, $configArray)
** 功能 写入配置文件
** 参数 $fileName 配置文件名称
** 参数 $DBInfo 数据库配置信息数组
*/
function configSYS($fileName, $configArray)
{
	if(empty($configArray)) 
	{
		return false;
	}
	//读取数据
	if(function_exists("file_get_contents"))
	{
		$configText = file_get_contents(IB_ROOT . $fileName);
	}
	else
	{
		$configText = join("", file(IB_ROOT . $fileName));
	}
	//循环修改配置
	foreach($configArray as $key => $val) 
	{
		$regC = "|define\(\"$key\".+;|";	//常量配置参数
		$val = "\"$val\"";
		$configText = preg_replace($regC, "define(\"$key\", $val);", $configText);
	}
	//exit();
	if($fp = fopen(IB_ROOT . $fileName, "w"))
	{
		fwrite($fp, $configText);
		fclose($fp);
		return true;
	}
	else
		return false;
}
// 表单验证函数
function validateForm()
{
	global $successList, $errorList;
	if(!validate::required($_POST['DBHost']))
	{
		$errorList[] = array("message" => "数据库主机名不能为空");
	}
	if(!validate::required($_POST['DBName']))
	{
		$errorList[] = array("message" => "数据库名称不能为空");
	}
	if(!validate::required($_POST['DBUser']))
	{
		$errorList[] = array("message" => "数据库用户名不能为空");
	}
	if(!validate::required($_POST['DBPwd']))
	{
		$errorList[] = array("message" => "数据库密码不能为空");
	}
	if(!validate::required($_POST['APPName']))
	{
		$errorList[] = array("message" => "网站名称不能为空");
	}
	showMsg(3);
}
//显示提示信息函数
function showMsg($step)
{
	global $errorList, $successList;
	$haveMsg = false;

	if(!empty($errorList))
	{
		$haveMsg = true;
		$msgList = $errorList;
		$msgType = "error-msg";
		$button  = "<input type='button' class='button' value='上一步' onclick='history.back()' />";
	}
	elseif(!empty($successList))
	{

		$haveMsg = true;
		$msgList = $successList;
		$msgType = "success-msg";
		$button  = "<input type='button' class='button' value='上一步' onclick='history.back()' />&nbsp;&nbsp;&nbsp;";
		$button .= "<input type='submit' class='button' value='下一步' />";
		
	}
	if($haveMsg)
	{
		$html  = "<form method='post' action='install.php' class='white-box'>";
		$html .= "<div class='body-box'><div class='$msgType'>";
		$html .= "<ul>";
		foreach($msgList as $val)
		{
			$html .= "<li>" . $val['message'] . "</li>";
		}
		$html .= "</ul><br />";
		$html .= "<input type='hidden' name='step' value='$step' />";
		$html .= $button . "</div></div></form>";

		echo $html;
		exit();
	}	
}
?>
<!-- 文件头 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>冰山信息发布系统--冰山网络工作室 </title>
<meta http-equiv="content-type" content="text/html;charset=GB2312" />
<meta name="Generator" content="EditPlus" />
<meta name="Author" content="冰山网络工作室" />
<meta name="Keywords" content="冰山,iceberg" />
<link rel="stylesheet" href="style/global.css" type="text/css" />
<style>
	body {margin:10% 10%;}
	#license {
		border:1px solid #0152AE;
		padding:20px;
		padding-bottom:0px;
	}
</style>
</head>
<body>
<div class="main-box">
	<div class="head-dark-box">
		冰山信息发布系统安装程序
	</div>
<?php
//第一步,显示条款
if($step == 1)
{
?>

	<div class="body-box tip-msg">
		欢迎您使用冰山信息发布系统1.0beta,请认真阅读以下安装条款后进行安装.
	</div>
	<form method="post" action="install.php" class="white-box">
		<div class="body-box">
			<div class="center red-font">许可协议</div>
			<div id="license">
				<ol>
					<li>冰山信息发布系统的所有权归<a href="http://www.icebergweb.com"><span class="red-font">冰山网络工作室</span></a>所有,未经允许不得用于任何商业用途.</li>
					<li>用户可无条件使用并传播本软件的测试版本,对本软件的任何更新请将更新版本发给本工作室一份.</li>
					<li>任何自愿使用测试版本的用户,本工作室将不提供任何使用保障,技术服务,也不承担任何因使用本软件而产生问题的相关责任。</li>
				<ol>
				<br />
			</div>
		</div>
		<div class="center body-box">
			<input type="hidden" name="step" value="2" />
			<input type="submit" class="button" value="我同意以上条款" />
		</div>
	</form>
<?php
}
//安装配置信息
if($step == 2)
{
?>
	<div class="body-box tip-msg">
		请在下面的表单中填写配置信息
	</div>
	<form method="post" action="install.php" class="white-box">
		<table class="alt-table" cellspacing="0">
			<tr class="light-row">
				<td class="require-field">数据库主机名称</td>
				<td><input type="text" class="text-box" name="DBHost" size="15" value="localhost" />
					无特殊说明均为localhost
				</td>
			</tr>
			<tr class="dark-row">
				<td class="require-field">数据库名称</td>
				<td><input type="text" class="text-box" name="DBName" size="15" />			
				</td>
			</tr>
			<tr class="light-row">
				<td class="require-field">数据库用户名</td>
				<td><input type="text" class="text-box" name="DBUser" size="15" />			
				</td>
			</tr>
			<tr class="dark-row">
				<td class="require-field">数据库密码</td>
				<td><input type="password" class="text-box" name="DBPwd" size="15" />			
				</td>
			</tr>
			<tr class="light-row">
				<td class="require-field">网站名称</td>
				<td><input type="text" class="text-box" name="APPName" size="15" value="冰山网络工作室" />	
					用于在标题栏上显示
				</td>
			</tr>	
			<tr class="dark-row">
				<td>
					<input type="hidden" name="step" value="3" />
				</td>
				<td>
					<input type="button" class="button" value="上一步" onclick="history.back()" />
					<input type="submit" class="button" value="下一步" />&nbsp;&nbsp;
					<input type="reset" class="button" value="重 设" />
				</td>
			</tr>
		</table>
	</form>
<?php
} 
if($step == 3)
{
	validateForm();

	if(!@mysql_connect($_POST['DBHost'],$_POST['DBUser'],$_POST['DBPwd']))
	{
		$errorList[] = array("message" => "数据库连接失败,请检查用户名密码.");	
	}
	elseif(!@mysql_select_db($_POST['DBName']))
	{
		$errorList[] = array("message" => "数据库".$_POST['DBName']."不存在或没有权限访问,请重新填写.");	
	}
	else
	{	
		//配置信息数组
		$configArray = array();
		//根据安装文件的路径确定系统的安装路径
		$appPath = rtrim($_SERVER['PHP_SELF'], basename($_SERVER['PHP_SELF']));

		$configArray['DB_HOST'] = $_POST['DBHost'];
		$configArray['DB_USER'] = $_POST['DBUser'];
		$configArray['DB_PWD']	= $_POST['DBPwd'];
		$configArray['DB_NAME']	= $_POST['DBName'];
		$configArray['APP_NAME']= $_POST['APPName'];
		$configArray['APP_PATH']= $appPath;
		//写入配置文件
		if(configSYS("config.php", $configArray))
		{
			$successList[] = array("message" => "系统配置文件写入成功.");
			$successList[] = array("message" => "数据库检测成功.");
			$successList[] = array("message" => "数据库".$_POST['DBName']."存在,请点击下一步安装数据库文件.");
		}
		else
		{
			$errorList[] = array("message" => "系统配置文件写入失败,请检查文件权限.");
		}
	}
	//显示信息
	showMsg(4);
}
//安装数据库
if($step == 4)
{
	if(file_exists("db/IBArticle.sql"))
	{
		installDB("IBArticle.sql");
	}
	else
	{
		$errorList = array("message" => "数据库文件不存在,安装失败");
	}

	showMsg(5);
	//显示创建管理员帐户的表单
?>
	<div class="body-box tip-msg">
		添加管理员帐号
	</div>
	<form method="post" action="install.php" class="white-box">
		<table class="alt-table" cellspacing="0">
			<tr class="dark-row">
				<td class="require-field width-20percent">管理员用户名</td>
				<td><input type="text" class="text-box" name="adminName" size="15" />					
				</td>
			</tr>
			<tr class="light-row">
				<td class="require-field">管理员密码</td>
				<td><input type="password" class="text-box" name="adminPwd" size="15" />			
				</td>
			</tr>
			<tr class="dark-row">
				<td>
					<input type="hidden" name="step" value="5" />
				</td>
				<td>
					<input type="button" class="button" value="上一步" onclick="history.back()" />&nbsp;
					<input type="submit" class="button" value="完成安装" />
				</td>
			</tr>
		</table>
	</form>	
<?php
}

if($step == 5) //处理信息
{
	if(!validate::required($_POST['adminName']))
	{
		$errorList[] = array("message" => "管理员用户名不能为空");
	}
	if(!validate::required($_POST['adminPwd']))
	{
		$errorList[] = array("message" => "管理员密码不能为空");
	}
	showMsg(6);

	//没有错误,添加帐号
	$sql = "INSERT INTO ib_user VALUES('', '{$_POST['adminName']}', MD5('{$_POST['adminPwd']}'))";

	mysql_connect(DB_HOST,DB_USER,DB_PWD);
	mysql_select_db(DB_NAME);

	//echo $sql;exit();
	if(!mysql_query($sql))
	{
		$errorList[] = array("message" => "管理员帐户创建失败,请重试.");
	}
	showMsg(6);
?>
<!-- 显示完成信息 -->
	<div class="body-box success-msg">
		系统安装成功,感谢您使用冰山信息发布系统.</br>
		您可以通用访问<a href="http://www.icebergweb.com"><span class="reg-font">http://www.icebergweb.com</span></a>
		来了解冰山网络的最新产品信息.</br>
		如果您在使用此系统的过程中发现任何BUG请到上面的地址留言转达我们.
		
	</div>
<?php
}
?>
<!-- 尾部 -->
</div>
</body>
</html>

⌨️ 快捷键说明

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