初始化项目

This commit is contained in:
2026-09-01 22:15:50 +08:00
commit b5a26a8848
11217 changed files with 1710987 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

@@ -0,0 +1,140 @@
$(function () {
$(".input").focus(function () {
$(this).attr("class", "inputOn");
}).blur(function () {
$(this).attr("class", "input");
});
$("#dbhost").focus();
})
function CheckForm() {
var format = /^[a-zA-Z0-9_@!.-]+$/;
if ($("#dbhost").val() == "") {
alert("请输入数据库服务器!");
$("#dbhost").focus();
return false;
}
if ($("#dbname").val() == "") {
alert("请输入数据库名!");
$("#dbname").focus();
return false;
}
if (!format.exec($("#dbname").val())) {
alert("数据库名非法!请使用[a-zA-Z0-9_@!.-]内的字符!!");
$("#dbname").focus();
return false;
}
if ($("#dbuser").val() == "") {
alert("请输入数据库用户!");
$("#dbuser").focus();
return false;
}
// if ($("#username").val() == "") {
// alert("请输入管理员账号!");
// $("#username").focus();
// return false;
// }
//
// if ($("#username").val().length < 5 ||
// $("#username").val().length > 20) {
// alert("用户名长度不得小于5位或大于20位!");
// $("#username").focus();
// return false;
// }
//
// if ($("#password").val() == "") {
// alert("请输入管理员密码!");
// $("#password").focus();
// return false;
// }
//
// if ($("#password").val().length < 5 ||
// $("#password").val().length > 16) {
// alert("密码由5-16个字符组成,区分大小写!");
// $("#password").focus();
// return false;
// }
//
// if ($("#repassword").val() == "") {
// alert("请输入重复密码!");
// $("#repassword").focus();
// return false;
// }
//
// if ($("#password").val() != $("#repassword").val()) {
// alert("两次密码不同!");
// $("#repassword").focus();
// return false;
// }
if ($("#cpwd").val() == "false") {
$.ajax({
url: 'index.php',
data: {
s: 63832,
dbhost: $("#dbhost").val(),
dbuser: $("#dbuser").val(),
dbpwd: $("#dbpwd").val(),
},
type: 'get',
dataType: 'html',
success: function (data) {
if (data == 'true') {
$('#cpwdTxt').html('<span class="correct">可用</span>');
$('#cpwd').val("true");
//验证没有问题,提交表单
document.form.submit();
return;
} else {
$('#cpwdTxt').html('<span class="error">不可用</span>');
$("#dbpwd").focus();
$('#cpwd').val("false");
return false;
}
}
});
} else {
//验证没有问题,提交表单
document.form.submit();
return;
}
}
/**
* 验证数据库账号密码是否正确
* @constructor
*/
function CheckPwd() {
$.ajax({
url: 'index.php',
data: {
s: 63832,
dbhost: $("#dbhost").val(),
dbport: $("#dbport").val(),
dbuser: $("#dbuser").val(),
dbpwd: $("#dbpwd").val(),
},
type: 'get',
dataType: 'html',
success: function (data) {
if (data === 'true') {
$('#cpwdTxt').html('<span class="correct">可用</span>');
$('#cpwd').val("true");
} else {
$('#cpwdTxt').html('<span class="error">不可用</span>');
$('#cpwd').val("false");
}
}
});
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,57 @@
<?php if (!defined('IN_INSTALL')) exit('Request Error!'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>萤火商城系统 安装向导 - 协议说明</title>
<link href="templates/style/install.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="templates/js/jquery.min.js"></script>
<script type="text/javascript" src="templates/js/common.js"></script>
</head>
<body>
<div class="header"></div>
<div class="mainBody">
<div class="text">
<h3>软件许可协议</h3>
<p>尊敬的用户:</p>
<div class="hr_8"></div>
<p>感谢您选择萤火商城,希望我们的努力能为您提供一款适用于企业级电商零售的利器,萤火商城官方网站为 <a href="https://www.yiovo.com" target="_blank">https://www.yiovo.com</a>。
</p>
<div class="hr_8"></div>
<p>萤火商城系统(以下称“本系统”),由烟台晴好网络科技有限公司(以下称“萤火科技”)自主研发,版权所有Copyright (c)2018-2021,萤火科技保留所有权利。</p>
<p>
使用者无论个人或组织、盈利与否、用途如何(包括以学习和研究为目的),均需仔细阅读本协议,在理解、同意、并遵守本协议的全部条款后,方可开始使用本系统。本授权协议适用且仅适用于本产品,萤火科技拥有对本授权协议的最终解释权。</p>
<div class="hr_8"></div>
<h4>一. 协议许可的权利</h4>
<p>您可以在完全遵守本最终用户授权协议的基础上,安装和使用本系统提供的全部功能,而不必支付软件版权授权费用。</p>
<p>您可以在协议规定的约束和限制范围内修改本系统源代码或界面风格以适应您的使用要求,但需保留本系统的版权信息和链接。</p>
<p>您拥有使用本系统构建的应用中全部会员资料、内容及相关信息的所有权,并独立承担相关法律义务。</p>
<div class="hr_8"></div>
<h4>二. 协议规定的约束和限制</h4>
<p>未经我们书面许可,您不得删除或修改本系统页面中的版权信息及相应的官方链接(无论用途如何、是否经过修改或美化、修改程度如何)。</p>
<p>您不得在本系统的整体或任何部分基础上以发展任何派生版本、修改版本或第三方版本用于重新分发。</p>
<p>您不得通过分解软件,把不同功能或把软件的不同部分嵌入到其他软件系统。</p>
<p>如果您未能遵守本协议的条款,您的授权将被终止,所被许可的权利将被收回,并承担相应法律责任。</p>
<div class="hr_8"></div>
<h4>三. 有限担保和免责声明</h4>
<p>
本系统及所附带的文件是作为不提供任何明确的或隐含的赔偿或担保的形式提供的。用户出于自愿而使用本系统,您必须了解使用本系统的风险,在尚未购买产品技术服务之前,我们不承诺提供任何形式的技术支持、使用担保,也不承担任何因使用本系统而产生问题的相关责任。萤火科技不对使用本系统构建的网站和应用中的内容或信息承担责任。
</p>
<div class="hr_8"></div>
<p>本系统受著作权法、国际著作权条约和其他的知识产权法律或国际条约保护。根据本协议,在此仅许可您非独占性的、非排他性的一般许可使用该软件的权利,而不是出售或转让。</p>
<div class="hr_8"></div>
<p>
有关本系统最终用户授权协议、商业授权与技术服务的详细内容,均由萤火官方网站独家提供。萤火科技拥有在不事先通知的情况下,修改授权协议和服务价目表的权力,修改后的协议对自改变之日起的新授权用户生效。</p>
<div class="hr_8"></div>
<p>
电子文本形式的授权协议如同双方书面签署的协议一样,具有完全的和等同的法律效力。您一旦开始安装本系统,即被视为完全理解并接受本协议的各项条款,在享有上述条款授予的权力的同时,受到相关的约束和限制。协议许可范围以外的行为,将直接违反本授权协议并构成侵权,我们有权随时终止授权,责令停止损害,并保留追究相关责任的权力。</p>
</div>
</div>
<div class="footer"><span class="step"></span> <span class="copyright"><?php echo $cfg_copyright; ?></span> <span
class="formSubBtn"> <a href="javascript:void(0);" onclick="window.close();return false;"
class="back">不同意</a> <a href="?s=1" class="submit">同 意</a> </span></div>
</body>
</html>
@@ -0,0 +1,157 @@
<?php if (!defined('IN_INSTALL')) exit('Request Error!'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>萤火商城 安装向导 - 检测安装环境</title>
<link href="templates/style/install.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="templates/js/jquery.min.js"></script>
<script type="text/javascript" src="templates/js/common.js"></script>
</head>
<body>
<div class="header"></div>
<div class="mainBody">
<div class="forms">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr align="left" class="head">
<td width="30%" height="36">项目
</th>
<td width="30%">所需配置
</th>
<td width="15%">推荐配置
</th>
<td width="25%" align="right">当前服务器
</th>
</tr>
<tr>
<td height="26" class="firstCol">操作系统</td>
<td>不限制</td>
<td>Linux</td>
<td class="endCol"><?php echo PHP_OS; ?></td>
</tr>
<tr>
<td height="26" class="firstCol">PHP 版本</td>
<td>7.4</td>
<td>7.4</td>
<td class="endCol"><?php echo getPHPVersion(); ?></td>
</tr>
<tr>
<td height="26" class="firstCol">附件上传</td>
<td>2M</td>
<td>2M</td>
<td class="endCol"><?php echo get_cfg_var("upload_max_filesize") ?: '不允许上传附件'; ?></td>
</tr>
<tr>
<td height="26" class="firstCol">GD 库</td>
<td>2.0</td>
<td>2.1</td>
<td class="endCol"><?php
$gdInfo = function_exists('gd_info') ? gd_info() : [];
echo empty($gdInfo['GD Version']) ? 'noext' : $gdInfo['GD Version'];
?></td>
</tr>
<tr>
<td height="26" class="firstCol">磁盘空间</td>
<td>100M</td>
<td>不限制</td>
<td class="endCol">
<?php
if (function_exists('disk_free_space')) {
echo floor(disk_free_space('../') / (1024 * 1024)) . 'M';
} else {
echo 'unknow';
}
?>
</td>
</tr>
</table>
<div class="hr_10"></div>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr align="left" class="head">
<td width="60%" height="36">扩展要求
</th>
<td width="25%">检查结果
</th>
<td width="15%" align="right">建议
</th>
</tr>
<?php foreach ($extendArray as $item): ?>
<tr>
<td height="26" class="firstCol"><?= $item['name'] ?></td>
<td><?= $item['status'] ? '支持' : '不支持' ?></td>
<td class="endCol">
<span class="<?= $item['status'] ? '' : 'col-red' ?>"><?= $item['status'] ? '无' : '需安装' ?></span>
</td>
</tr>
<?php endforeach ?>
</table>
<div class="hr_10"></div>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr align="left" class="head">
<td width="60%" height="36">函数名称
</th>
<td width="25%">检查结果
</th>
<td width="15%" align="right">建议
</th>
</tr>
<?php foreach ($exists_array as $v): ?>
<tr>
<td height="26" class="firstCol"><?php echo $v; ?>()</td>
<td><?= isFunExists($v) ? '支持' : '不支持' ?></td>
<td class="endCol"><?= isFunExistsTxt($v) ?></td>
</tr>
<?php endforeach ?>
</table>
<div class="hr_10"></div>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr align="left" class="head">
<td width="60%" height="36">文件权限检测
</th>
<td width="25%">所需状态
</th>
<td width="15%" align="right">当前状态
</th>
</tr>
<?php
foreach ($iswrite_array as $v) {
?>
<tr align="left">
<td height="26" class="firstCol"><?php echo $v; ?></td>
<td>可写</td>
<td class="endCol"><?php isWrite($v); ?></td>
</tr>
<?php
}
?>
</table>
</div>
</div>
<div class="footer">
<span class="step2"></span>
<span class="copyright"><?= $cfg_copyright; ?></span>
<span class="formSubBtn">
<form class="j-form" method="post" action="index.php">
<a href="javascript:void(0);" onclick="history.go(-1);return false;" class="back">返 回</a>
<a href="javascript:void(0);" class="j-submit submit">下一步</a>
<input type="hidden" name="s" id="s" value="2">
</form>
</span>
</div>
<script>
$(function () {
// 环境检测是否通过
var isPass = <?= $GLOBALS['isNext'] ? 'true' : 'false' ?>;
console.log(isPass)
// 表单提交
$('.j-submit').click(function () {
if (isPass) {
$('.j-form').submit();
} else {
alert('环境检测不通过,请先修复');
}
})
})
</script>
</body>
</html>
@@ -0,0 +1,82 @@
<?php if (!defined('IN_INSTALL')) exit('Request Error!'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>萤火商城 安装向导 - 配置数据文件</title>
<link href="templates/style/install.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="templates/js/jquery.min.js"></script>
<script type="text/javascript" src="templates/js/common.js"></script>
<script type="text/javascript" src="templates/js/forms.js"></script>
</head>
<body>
<form name="form" id="form" method="post" action="index.php">
<div class="header"></div>
<div class="mainBody">
<div class="table">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="40" colspan="2" align="left"><span class="title">填写数据库信息</span></td>
</tr>
<tr>
<td width="30%" height="40" align="right">数据库服务器:</td>
<td><input type="text" name="dbhost" id="dbhost" class="input" value="localhost"/>
<span class="cnote">数据库服务器地址, 一般为 localhost</span></td>
</tr>
<tr>
<td width="30%" height="40" align="right">数据库端口号:</td>
<td>
<input type="text" name="dbport" id="dbport" class="input" value="3306"/>
<span class="cnote">数据库端口号, 一般为 3306</span>
</td>
</tr>
<tr>
<td height="40" align="right">数据库名称:</td>
<td>
<input type="text" name="dbname" id="dbname" class="input" value="yoshop2_db"/>
<span class="cnote">数据库的名称,如果没有请先新增</span>
</td>
</tr>
<tr>
<td height="40" align="right">数据库用户名:</td>
<td><input type="text" name="dbuser" id="dbuser" class="input" value="root"/></td>
</tr>
<tr>
<td height="40" align="right">数据库密码:</td>
<td><input type="password" name="dbpwd" id="dbpwd" class="input" onblur="CheckPwd()"/>
<span class="cnote"><span id="cpwdTxt"></span></span>
<input type="hidden" name="cpwd" id="cpwd" value="false"></td>
</tr>
<tr>
<td height="40" colspan="2" align="left"><span class="title">默认管理员信息</span></td>
</tr>
<tr>
<td height="40" align="right">管理员账号:</td>
<td>
<div class="readonly">admin</div>
</td>
</tr>
<tr>
<td height="40" align="right">管理员密码:</td>
<td>
<div class="readonly">yinghuo</div>
</td>
</tr>
<!-- <tr>-->
<!-- <td height="40" align="right">安装测试数据:</td>-->
<!-- <td><input type="checkbox" name="testdata" value="true" checked="checked"/>-->
<!-- 是-->
<!-- </td>-->
<!-- </tr>-->
</table>
</div>
</div>
<div class="footer"><span class="step3"></span> <span class="copyright"><?php echo $cfg_copyright; ?></span> <span
class="formSubBtn"> <a href="javascript:void(0);" onclick="history.go(-1);return false;" class="back">返 回</a> <a
href="javascript:void(0);" onclick="CheckForm();return false;" class="submit">开始安装</a>
<input type="hidden" name="s" id="s" value="3">
</span></div>
</form>
</body>
</html>
@@ -0,0 +1,21 @@
<?php if(!defined('IN_INSTALL')) exit('Request Error!'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>萤火商城 安装向导 - 执行配置文件</title>
<link href="templates/style/install.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="templates/js/jquery.min.js"></script>
<script type="text/javascript" src="templates/js/common.js"></script>
</head>
<body>
<div class="header"></div>
<div class="mainBody">
<div class="text">
<h4>正在安装...</h4>
<div id="install"></div>
</div>
</div>
<div class="footer"> <span class="step3"></span> <span class="copyright"><?php echo $cfg_copyright; ?></span> </div>
</body>
</html>
@@ -0,0 +1,22 @@
<?php if(!defined('IN_INSTALL')) exit('Request Error!'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>萤火商城 安装向导 - 安装成功</title>
<link href="templates/style/install.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="templates/js/jquery.min.js"></script>
<script type="text/javascript" src="templates/js/common.js"></script>
</head>
<body>
<div class="header"></div>
<div class="mainBody">
<div class="note">
<div class="complete"><strong>现在您可以:</strong><br />
<a href="../">访问首页</a><span>或</span><a href="../admin/">登录后台</a><br /><br />
您可以访问 <a href="https://www.yiovo.com/" target="_blank" class="link">yiovo.com</a> 获取更多帮助 </div>
</div>
</div>
<div class="footer"> <span class="step4"></span> <span class="copyright"><?php echo $cfg_copyright; ?></span></div>
</body>
</html>
@@ -0,0 +1,22 @@
<?php if(!defined('IN_INSTALL')) exit('Request Error!'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>萤火商城 安装向导 - 程序已安装</title>
<link href="templates/style/install.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="templates/js/jquery.min.js"></script>
<script type="text/javascript" src="templates/js/common.js"></script>
</head>
<body>
<div class="header"></div>
<div class="mainBody">
<div class="note">
<div class="complete"><strong>现在您可以:</strong><br />
<a href="../">访问首页</a><span>或</span><a href="../admin/">登录后台</a><br /><br />
您可以访问 <a href="https://www.yiovo.com/" target="_blank" class="link">yiovo.com</a> 获取更多帮助 </div>
</div>
</div>
<div class="footer"> <span class="step4"></span> <span class="copyright"><?php echo $cfg_copyright; ?></span></div>
</body>
</html>
@@ -0,0 +1,346 @@
@charset "utf-8";
/* 全局控制 */
html {
/*overflow: hidden;*/
}
body {
margin: 0;
padding: 0;
font-family: "微软雅黑", Arial, "宋体";
font-size: 13px;
color: #333;
}
html, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td, p {
margin: 0;
padding: 0;
}
input, select, textarea {
vertical-align: middle;
font-family: "微软雅黑", Arial, "宋体";
font-size: 12px;
}
img {
border: 0;
}
ul, li {
list-style-type: none;
}
a {
color: #333;
text-decoration: none;
}
a:hover {
text-decoration: underline;
color: #333;
}
a:focus {
outline: none;
}
a {
transition-duration: 300ms;
}
/*全局函数*/
.hr_1, .hr_8, .hr_10 {
font-size: 1px;
line-height: 1px;
clear: both;
overflow: hidden;
}
.hr_1 {
height: 1px;
}
.hr_8 {
height: 8px;
}
.hr_10 {
height: 10px;
}
.col-red {
color: red;
}
/*定义新型浏览器特性*/
::-webkit-scrollbar {
width: 10px;
height: 10px
}
::-webkit-scrollbar-button:vertical {
display: none
}
::-webkit-scrollbar-track:vertical {
background: #000
}
::-webkit-scrollbar-track-piece {
background: #f6f6f6
}
::-webkit-scrollbar-thumb:vertical {
background: #d0d0d0;
}
::-webkit-scrollbar-thumb:vertical:hover {
background: #3B3B3B
}
::-webkit-scrollbar-corner:vertical {
background: #535353
}
::-webkit-scrollbar-resizer:vertical {
background: #FF6E00
}
input[type="text"]:focus, input[type="password"]:focus {
border: none;
outline: none;
}
.header, .mainBody, .footer {
width: 960px;
margin: 0 auto;
}
/*头部区域*/
.header {
height: 90px;
margin-bottom: 20px;
background: url(../images/logo.png) no-repeat 0 center;
border-bottom: 1px solid #d4d4d4;
}
/*主要区域*/
.mainBody {
overflow-x: hidden;
overflow-y: auto;
padding: 0 10px;
}
.mainBody .correct, .mainBody .error {
padding-left: 22px;
}
.mainBody .correct {
background: url(../images/correctBg.png) no-repeat 0 center;
color: green;
}
.mainBody .error {
background: url(../images/errorBg.png) no-repeat 0 center;
color: red;
}
.mainBody .text {
line-height: 25px;
}
.mainBody .text h3 {
font-size: 14px;
text-align: center;
margin-bottom: 10px;
color: #333;
}
.mainBody .text h4 {
font-size: 13px;
margin: 10px 0 5px 0;
color: #333;
}
.mainBody .forms .head {
font-weight: bold;
font-size: 14px;
}
.mainBody .forms .firstCol {
padding-left: 5px;
}
.mainBody .forms .endCol {
padding-right: 5px;
text-align: right;
}
.mainBody .table .title {
font-weight: bold;
font-size: 14px;
}
.mainBody .table .input, .readonly {
width: 280px;
height: 24px;
line-height: 24px;
margin: 1px;
border: 1px solid #ccc;
padding: 0 3px;
}
.mainBody .table .readonly {
display: inline-block;
border: none;
}
.mainBody .table .inputOn {
width: 280px;
height: 24px;
line-height: 24px;
padding: 2px 5px;
background: url(../images/inputOnBg.png) no-repeat 0 center;
border: 0;
}
.mainBody .table .cnote {
margin-left: 20px;
color: #999;
}
.mainBody .note {
width: 400px;
margin: 80px auto 0;
}
.mainBody .note .complete, .mainBody .note .already {
width: 400px;
padding: 90px 0 0 95px;
line-height: 22px;
}
.mainBody .note .complete {
background: url(../images/complete.png) no-repeat;
}
.mainBody .note .already {
background: url(../images/already.png) no-repeat;
}
.mainBody .note span {
color: #999;
padding: 0 5px;
}
.mainBody .note a {
text-decoration: underline;
}
.mainBody .note a:hover {
text-decoration: none;
}
.mainBody .note a.link {
text-decoration: none;
}
.mainBody .note a.link:hover {
text-decoration: underline;
}
/* 页脚区域 */
.footer {
margin-top: 20px;
height: 50px;
border-top: 3px solid #f0f0f0;
background: #fff;
position: relative;
}
.footer .step, .footer .step2, .footer .step3, .footer .step4, .footer .step5 {
display: block;
height: 3px;
position: absolute;
left: 0;
bottom: 50px;
background: #0cd7f7;
overflow: hidden;
z-index: 999;
}
.footer .step {
width: 25%;
}
.footer .step2 {
width: 50%;
}
.footer .step3 {
width: 75%;
}
.footer .step4 {
width: 100%;
}
.footer .step5 {
width: 100%;
}
.footer .copyright {
float: left;
padding-left: 10px;
line-height: 50px;
font-family: Verdana;
}
.footer .formSubBtn {
width: 200px;
float: right;
margin-top: 10px;
padding-right: 20px;
text-align: right;
}
.footer .formSubBtn .submit, .formSubBtn .back {
display: inline-block;
width: 78px;
height: 28px;
line-height: 28px;
text-align: center;
font-family: "微软雅黑";
font-size: 14px;
}
.footer .formSubBtn .submit {
background: #3d566d;
border: 1px solid #3d566d;
color: #fff;
}
.footer .formSubBtn .submit:hover {
background: #4f6880;
text-decoration: none;
}
.footer .formSubBtn .back {
margin-right: 10px;
background: #fff;
border: 1px solid #999;
color: #666;
}
.footer .formSubBtn .back:hover {
border: 1px solid #666;
text-decoration: none;
}