📄 install.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()' /> ";
$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="下一步" />
<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()" />
<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 + -