更新3.0

This commit is contained in:
admin
2025-03-28 17:00:42 +08:00
parent 86038423e1
commit 6cc49273b6
62 changed files with 6470 additions and 5240 deletions
+11
View File
@@ -12,6 +12,17 @@
// [ 应用入口文件 ]
namespace think;
// 检测PHP环境
if(version_compare(PHP_VERSION,'7.2.0','<')) die('require 7.2.0 < PHP <= 7.3.0 !');
if(version_compare(PHP_VERSION,'7.3.0','>')) die('require 7.2.0 < PHP <= 7.3.0 !');
// 检测是否是新安装
if(file_exists("./install") && !file_exists("./install/install.lock")){
$url=$_SERVER['HTTP_HOST'].trim($_SERVER['SCRIPT_NAME'],'index.php').'install/index.php';
header("Location:http://$url");
die;
}
require __DIR__ . '/../vendor/autoload.php';
// 执行HTTP应用并响应
BIN
View File
Binary file not shown.
+27
View File
@@ -0,0 +1,27 @@
<?php
if(!defined('HAIZAN_VERSION')) die('what do you want?');
return array(
//数据库类型
'DB_TYPE' => 'mysql',
//服务器
'DB_HOST'=>'#DB_HOST#',
//数据库名
'DB_NAME'=>'#DB_NAME#',
//数据库用户名
'DB_USER'=>'#DB_USER#',
//数据库用户密码
'DB_PWD'=> '#DB_PWD#',
//数据库库表前缀
'DB_PREFIX'=>'#DB_PREFIX#',
// 端口
'DB_PORT'=> '#DB_PORT#',
//Cookie前缀 避免冲突
'COOKIE_PREFIX' => '#COOKIE_PREFIX#',
// 缓存前缀
'DATA_CACHE_PREFIX' => '#DATA_CACHE_PREFIX#',
// session 前缀
'SESSION_PREFIX' => '#SESSION_PREFIX#',
//authcode加密函数密钥
"AUTHCODE" => '#AUTHCODE#',
);
+39
View File
@@ -0,0 +1,39 @@
<?php
return array(
/* ------系统------ */
//系统名称
'name'=>'心悦搜索管理系统',
//系统版本
'version'=>'1.0',
//系统powered
'powered'=>'后台管理系统',
//系统脚部信息
'footerInfo'=> '',
/* ------配置------ */
'php'=> '7.2.0', //最低要求
'php_t'=> '7.2.5', //推荐配置
/* ------站点------ */
//数据库文件
'sqlFileName'=>'data.sql',
//初始化商品文件
'sqlFileGoods'=>'goods.sql',
//数据库名
'dbName' => '',
//数据库表前缀
'dbPrefix' => 'qf_',
//站点名称
'siteName' => '',
//需要读写权限的目录
'dirAccess' => array(
'/',
'../uploads',
),
/* ------写入数据库完成后处理的文件------ */
'handleFile' => 'main.php',
/* ------安装验证/生成文件;非云平台安装有效------ */
'installFile' => './install.lock',
'alreadyInstallInfo' => '你已经安装过该系统,如果想重新安装,请先删除站点install目录下的 install.lock 文件,然后再尝试安装!',
);
+379
View File
@@ -0,0 +1,379 @@
/*
Navicat Premium Data Transfer
Source Server : cms本地
Source Server Type : MySQL
Source Server Version : 50726
Source Host : localhost:3306
Source Schema : www_dj_com
Target Server Type : MySQL
Target Server Version : 50726
File Encoding : 65001
Date: 14/09/2024 16:54:39
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for qf_access
-- ----------------------------
DROP TABLE IF EXISTS `qf_access`;
CREATE TABLE `qf_access` (
`access_id` int(11) NOT NULL AUTO_INCREMENT,
`access_admin` int(11) NOT NULL DEFAULT 0 COMMENT '用户ID',
`access_token` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'AccessToken',
`access_plat` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'all' COMMENT '登录平台',
`access_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP',
`access_status` int(11) NOT NULL DEFAULT 0 COMMENT '状态',
`access_createtime` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
`access_updatetime` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间',
PRIMARY KEY (`access_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '授权信息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for qf_admin
-- ----------------------------
DROP TABLE IF EXISTS `qf_admin`;
CREATE TABLE `qf_admin` (
`admin_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'UID',
`admin_account` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '帐号',
`admin_password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码',
`admin_salt` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '密码盐',
`admin_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户昵称',
`admin_idcard` varchar(18) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '身份证',
`admin_truename` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '真实姓名',
`admin_email` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '邮箱',
`admin_money` decimal(9, 2) NOT NULL DEFAULT 0.00 COMMENT '余额',
`admin_group` int(11) NOT NULL DEFAULT 0 COMMENT '用户组',
`admin_ipreg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '注册IP',
`admin_status` int(11) NOT NULL DEFAULT 0 COMMENT '1被禁用',
`admin_createtime` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
`admin_updatetime` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间',
PRIMARY KEY (`admin_id`) USING BTREE,
INDEX `admin_group`(`admin_group`) USING BTREE,
INDEX `admin_name`(`admin_name`) USING BTREE,
INDEX `admin_password`(`admin_password`) USING BTREE,
INDEX `admin_account`(`admin_account`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for qf_attach
-- ----------------------------
DROP TABLE IF EXISTS `qf_attach`;
CREATE TABLE `qf_attach` (
`attach_id` int(11) NOT NULL AUTO_INCREMENT,
`attach_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件名',
`attach_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '路径',
`attach_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '类型',
`attach_size` int(11) NOT NULL DEFAULT 0 COMMENT '大小',
`attach_admin` int(11) NOT NULL DEFAULT 0 COMMENT '用户',
`attach_status` int(11) NOT NULL DEFAULT 0 COMMENT '状态',
`attach_createtime` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
`attach_updatetime` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间',
PRIMARY KEY (`attach_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '附件表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for qf_auth
-- ----------------------------
DROP TABLE IF EXISTS `qf_auth`;
CREATE TABLE `qf_auth` (
`auth_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '权限ID',
`auth_group` int(11) NOT NULL DEFAULT 0 COMMENT '权限管理组',
`auth_node` int(11) NOT NULL DEFAULT 0 COMMENT '功能ID',
`auth_status` int(11) NOT NULL DEFAULT 0 COMMENT '1被禁用',
`auth_createtime` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
`auth_updatetime` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间',
PRIMARY KEY (`auth_id`) USING BTREE,
INDEX `role_group`(`auth_group`) USING BTREE,
INDEX `role_auth`(`auth_node`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '权限表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for qf_conf
-- ----------------------------
DROP TABLE IF EXISTS `qf_conf`;
CREATE TABLE `qf_conf` (
`conf_id` int(11) NOT NULL AUTO_INCREMENT,
`conf_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '参数名',
`conf_value` text CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT '参数值',
`conf_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '参数名称',
`conf_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '参数描述',
`conf_int` int(11) NOT NULL DEFAULT 0 COMMENT '参数到期',
`conf_spec` int(11) NOT NULL DEFAULT 0 COMMENT '文本类型',
`conf_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '单选多选等文本类型的数据集',
`conf_type` int(11) NOT NULL DEFAULT 0 COMMENT '配置分类 ',
`conf_status` int(11) NOT NULL DEFAULT 0 COMMENT '显示隐藏 0是隐藏',
`conf_sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序',
`conf_system` int(11) NOT NULL DEFAULT 0 COMMENT '1为系统参数,请勿删除',
`conf_createtime` int(11) NOT NULL DEFAULT 0,
`conf_updatetime` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`conf_id`) USING BTREE,
INDEX `conf_key`(`conf_key`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 52 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '配置表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qf_conf
-- ----------------------------
INSERT INTO `qf_conf` VALUES (1, 'app_name', '', '网站名称', '', 0, 0, NULL, 0, 1, 99, 1, 0, 1725411498);
INSERT INTO `qf_conf` VALUES (2, 'upload_max_file', '4097152', '最大文件上传限制', '', 0, 0, NULL, 2, 1, 0, 1, 0, 1617352067);
INSERT INTO `qf_conf` VALUES (3, 'upload_file_type', 'csv,xlsx', '允许文件上传类型', '', 0, 0, NULL, 2, 1, 0, 1, 0, 1617351959);
INSERT INTO `qf_conf` VALUES (4, 'upload_max_image', '2097152', '最大图片上传限制', '', 0, 0, NULL, 2, 1, 0, 1, 0, 1617351961);
INSERT INTO `qf_conf` VALUES (5, 'upload_image_type', 'jpg,png,gif,jpeg,bmp', '允许上传图片类型', '', 0, 0, NULL, 2, 1, 0, 1, 0, 1617351964);
INSERT INTO `qf_conf` VALUES (21, 'logo', '', '网站LOGO', '方形LOGO,最佳显示尺寸为80*80像素', 0, 4, NULL, 0, 1, 93, 1, 1711636952, 1725006864);
INSERT INTO `qf_conf` VALUES (22, 'quark_cookie', '', '夸克Cookie', '', 0, 0, NULL, 4, 1, 0, 1, 1712114435, 1712114652);
INSERT INTO `qf_conf` VALUES (23, 'qcode', '', '群二维码', '前台加入群聊开关;有图显示按钮,无图不显示', 0, 4, NULL, 3, 1, 80, 1, 1712451616, 1725326400);
INSERT INTO `qf_conf` VALUES (24, 'app_description', '', 'SEO描述', '', 0, 1, NULL, 9, 1, 996, 1, 1712451778, 1725411481);
INSERT INTO `qf_conf` VALUES (25, 'quark_banned', '失效,年会员,空间容量,微信,微信群,全网资源,影视资源,扫码,最新资源,公众号,IMG_,资源汇总,緑铯粢源,.url,网盘推广,大额优惠券,资源文档,dy8.xyz,妙妙屋,资源合集,kkdm', '广告词', '出现这些词的资源,转存时删除;格式如:影视资源,年会员', 0, 1, NULL, 4, 1, 999, 1, 1714035639, 1723795683);
INSERT INTO `qf_conf` VALUES (26, 'Authorization', '', '阿里Authorization', '此版本用不着', 0, 0, NULL, 4, 1, 0, 1, 1722010465, 1722010465);
INSERT INTO `qf_conf` VALUES (27, 'mp4_online', '0', '在线观看资源', '此版本用不着', 0, 2, '开启=>1\n关闭=>0', 4, 1, 0, 1, 1723014926, 1723014926);
INSERT INTO `qf_conf` VALUES (28, 'search_type', '1', '搜索模式', '精准搜索:只有查包含关键词的;模糊搜索:关键词顺序可乱但必须都包含;分词搜索:只要满足其中一个字就会搜索到', 0, 2, '精准搜索=>0\n模糊搜索=>1\n分词搜索=>2', 1, 1, 0, 1, 1724493746, 1724494058);
INSERT INTO `qf_conf` VALUES (29, 'app_keywords', '', 'SEO关键词', '网站关键词,有利于对整站的SEO优化', 0, 1, NULL, 9, 1, 998, 1, 1725006403, 1725411476);
INSERT INTO `qf_conf` VALUES (30, 'app_title', '', 'SEO标题', '', 0, 0, NULL, 9, 1, 999, 1, 1725006679, 1725325013);
INSERT INTO `qf_conf` VALUES (31, 'app_subname', '', '网站宣传语', '免费分享百万级网盘资源,致力打造顶尖网盘搜索引擎,让您畅享资源无忧!', 0, 0, NULL, 0, 1, 94, 1, 1725006792, 1725006869);
INSERT INTO `qf_conf` VALUES (32, 'home_bg', '', '大图背景', '', 0, 4, '', 3, 1, 75, 1, 1725007588, 1725007613);
INSERT INTO `qf_conf` VALUES (33, 'home_background', NULL, '背景颜色', '默认:#fafafa', 0, 7, NULL, 3, 1, 74, 1, 1725007770, 1725027349);
INSERT INTO `qf_conf` VALUES (34, 'footer_dec', '', '底部介绍','示例:声明:本站是网盘索引系统,所有内容均来自互联网所提供的公开引用资源,未提供资源上传、存储服务。', 0, 1, NULL, 0, 1, 90, 1, 1725025185, 1725325534);
INSERT INTO `qf_conf` VALUES (35, 'footer_copyright', '', '底部版权','示例:© 2024 心悦搜剧 Powered by <a href=\"https://www.xinyuedh.com/\" target=\"_blank\">心悦导航</a>', 0, 1, NULL, 0, 1, 89, 1, 1725025262, 1725325624);
INSERT INTO `qf_conf` VALUES (36, 'home_color', NULL, '文字颜色', '默认文字颜色:#000000', 0, 7, NULL, 3, 1, 73, 1, 1725027432, 1725027445);
INSERT INTO `qf_conf` VALUES (37, 'home_theme', NULL, '主题色', '默认:#1e80ff', 0, 7, NULL, 3, 1, 72, 1, 1725027499, 1725027504);
INSERT INTO `qf_conf` VALUES (38, 'other_background', NULL, '其它元素背景', '搜索框及其它元素北背景色 默认:#ffffff', 0, 7, NULL, 3, 1, 71, 1, 1725028468, 1725028478);
INSERT INTO `qf_conf` VALUES (39, 'ranking_type', '0', '显示模式', '', 0, 2, '无图模式=>0\n有图模式=>1', 3, 1, 79, 1, 1725159933, 1725160022);
INSERT INTO `qf_conf` VALUES (40, 'ranking_num', '10', '排行榜数量', '下次更新生效;排行榜数据每12个小时更新一次;右上角清除缓存立即生效', 0, 0, NULL, 3, 1, 78, 1, 1725160003, 1725171288);
INSERT INTO `qf_conf` VALUES (41, 'home_css', '', '自定义CSS', '直接写css样式就行', 0, 1, NULL, 3, 1, 70, 1, 1725324697, 1725324697);
INSERT INTO `qf_conf` VALUES (42, 'seo_statistics', '', '统计代码', '直接填写统计代码即可,如51LA <script charset=\"UTF-8\" id=\"XXXXX\" src=\"//sdk.51.la/js-sdk-pro.min.js\"></script> <script>LA.init({id:\"XXXXX\",ck:\"XXXX\",hashMode:true})</script>', 0, 1, NULL, 9, 1, 995, 1, 1725325341, 1725411486);
INSERT INTO `qf_conf` VALUES (43, 'app_icon', '', '网站icon', '', 0, 4, NULL, 0, 1, 92, 1, 1725326071, 1725326071);
INSERT INTO `qf_conf` VALUES (44, 'app_demand', '0', '提交需求', '前台是否开启此功能 默认开启', 0, 2, '开启=>0\n关闭=>1', 3, 1, 81, 1, 1725326640, 1725326707);
INSERT INTO `qf_conf` VALUES (45, 'app_links', '', '顶部其他外链', '一行一个外链(a标签)<a href=\"https://www.xinyuedh.com/\" target=\"_blank\">更多资源</a>', 0, 1, NULL, 3, 1, 80, 1, 1725326838, 1725326838);
INSERT INTO `qf_conf` VALUES (46, 'app_name_hide', '0', '隐藏网站名称', '默认显示:logo包含文字的可以隐藏网站名称', 0, 2, '显示=>0\n隐藏=>1', 0, 1, 98, 1, 1725411632, 1725411763);
INSERT INTO `qf_conf` VALUES (47, 'ranking_m_num', '6', '移动端限制数量', '释:移动端最多显示数量', 0, 0, NULL, 3, 1, 77, 1, 1725412329, 1725412329);
INSERT INTO `qf_conf` VALUES (48, 'search_tips', '', '未搜索提示词', '为空时默认:未找到,可换个关键词尝试哦~', 0, 0, NULL, 1, 1, 0, 1, 1726108804, 1726108804);
INSERT INTO `qf_conf` VALUES (49, 'search_bg', '', '未搜索提示图', '', 0, 4, NULL, 1, 1, 0, 1, 1726108851, 1726108851);
INSERT INTO `qf_conf` VALUES (50, 'home_new', '1', '最新列表', '仅无图模式有效', 0, 2, '开启=>0\n关闭=>1', 3, 1, 79, 1, 1726299605, 1726299605);
INSERT INTO `qf_conf` VALUES (51, 'home_new_img', '', '最新图标', '', 0, 4, NULL, 3, 1, 79, 1, 1726302688, 1726302688);
INSERT INTO `qf_conf` VALUES (52, 'is_quan', '0', '全网搜', '', 0, 2, '关闭=>0\n开启=>1', 1, 1, 1, 1, 1729928547, 1729928547);
INSERT INTO `qf_conf` VALUES ('53', 'baidu_cookie', '', '百度Cookie', '', '0', '0', NULL, '4', '1', '89', '1', '1743145595', '1743145595');
INSERT INTO `qf_conf` VALUES ('54', 'quark_file', '', '夸克默认转存目录', '', '0', '0', NULL, '4', '1', '98', '1', '1743145595', '1743145595');
INSERT INTO `qf_conf` VALUES ('55', 'quark_file_time', '', '夸克临时资源目录', '', '0', '0', NULL, '4', '1', '97', '1', '1743145595', '1743145595');
INSERT INTO `qf_conf` VALUES ('56', 'baidu_file', '', '百度默认转存目录', '', '0', '0', NULL, '4', '1', '88', '1', '1743145595', '1743145595');
INSERT INTO `qf_conf` VALUES ('57', 'baidu_file_time', '', '百度临时资源目录', '', '0', '0', NULL, '4', '1', '87', '1', '1743145595', '1743145595');
INSERT INTO `qf_conf` VALUES ('58', 'ali_file', '', '阿里默认转存目录', '', '0', '0', NULL, '4', '1', '78', '1', '1743145595', '1743145595');
INSERT INTO `qf_conf` VALUES ('59', 'ali_file_time', '', '阿里临时资源目录', '', '0', '0', NULL, '4', '1', '77', '1', '1743145595', '1743145595');
INSERT INTO `qf_conf` VALUES ('60', 'uc_cookie', '', 'UcCookie', '', '0', '0', NULL, '4', '1', '69', '1', '1743145595', '1743145595');
INSERT INTO `qf_conf` VALUES ('61', 'uc_file', '', 'UC默认转存目录', '', '0', '0', NULL, '4', '1', '68', '1', '1743145595', '1743145595');
INSERT INTO `qf_conf` VALUES ('62', 'uc_file_time', '', 'UC临时资源目录', '', '0', '0', NULL, '4', '1', '67', '1', '1743145595', '1743145595');
INSERT INTO `qf_conf` VALUES ('63', 'xunlei_cookie', '', '迅雷Cookie', '', '0', '0', NULL, '4', '1', '59', '1', '1743149794', '1743149794');
INSERT INTO `qf_conf` VALUES ('64', 'xunlei_file', '', '迅雷默认转存目录', '', '0', '0', NULL, '4', '1', '58', '1', '1743149819', '1743149819');
INSERT INTO `qf_conf` VALUES ('65', 'xunlei_file_time', '', '迅雷临时资源目录', '', '0', '0', NULL, '4', '1', '57', '1', '1743149860', '1743149860');
-- ----------------------------
-- Table structure for qf_days
-- ----------------------------
DROP TABLE IF EXISTS `qf_days`;
CREATE TABLE `qf_days` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`time` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for qf_feedback
-- ----------------------------
DROP TABLE IF EXISTS `qf_feedback`;
CREATE TABLE `qf_feedback` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`create_time` int(11) NOT NULL DEFAULT 0,
`update_time` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for qf_group
-- ----------------------------
DROP TABLE IF EXISTS `qf_group`;
CREATE TABLE `qf_group` (
`group_id` int(11) NOT NULL AUTO_INCREMENT,
`group_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '管理组名称',
`group_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '管理组描述',
`group_status` int(11) NOT NULL DEFAULT 0 COMMENT '1被禁用',
`group_createtime` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
`group_updatetime` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间',
PRIMARY KEY (`group_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理组表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qf_group
-- ----------------------------
INSERT INTO `qf_group` VALUES (1, '超级管理员', '不允许删除', 0, 0, 1575903468);
-- ----------------------------
-- Table structure for qf_log
-- ----------------------------
DROP TABLE IF EXISTS `qf_log`;
CREATE TABLE `qf_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`domain` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`update_time` int(11) NOT NULL DEFAULT 0,
`create_time` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for qf_node
-- ----------------------------
DROP TABLE IF EXISTS `qf_node`;
CREATE TABLE `qf_node` (
`node_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '功能ID',
`node_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '功能名称',
`node_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '功能描述',
`node_module` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'api' COMMENT '模块',
`node_controller` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '控制器',
`node_action` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '方法',
`node_pid` int(11) NOT NULL DEFAULT 0 COMMENT '父ID',
`node_order` int(11) NOT NULL DEFAULT 0 COMMENT '排序ID',
`node_show` int(11) NOT NULL DEFAULT 1 COMMENT '1显示到菜单',
`node_icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '图标',
`node_extend` text CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT '扩展数据',
`node_status` int(11) NOT NULL DEFAULT 0 COMMENT '1被禁用',
`node_createtime` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
`node_updatetime` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间',
PRIMARY KEY (`node_id`) USING BTREE,
INDEX `auth_pid`(`node_pid`) USING BTREE,
INDEX `node_module`(`node_module`) USING BTREE,
INDEX `node_controller`(`node_controller`) USING BTREE,
INDEX `node_action`(`node_action`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 119 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '功能节点表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qf_node
-- ----------------------------
INSERT INTO `qf_node` VALUES (1, '概况', '', 'qfadmin', 'index', 'index', 0, 999, 1, 'el-icon-house', NULL, 0, 0, 1620874188);
INSERT INTO `qf_node` VALUES (2, '运营人员', '', 'qfadmin', '', '', 3, 0, 1, 'el-icon-user', NULL, 0, 0, 1618302083);
INSERT INTO `qf_node` VALUES (3, '系统', '', 'qfadmin', '', '', 0, 0, 1, 'el-icon-data-board', NULL, 0, 0, 1618301765);
INSERT INTO `qf_node` VALUES (4, '配置', '', 'qfadmin', '', '', 0, 0, 1, 'el-icon-setting', NULL, 0, 1617269862, 1712241481);
INSERT INTO `qf_node` VALUES (100, '管理员列表', '', 'qfadmin', 'admin', 'index', 2, 0, 1, 'el-icon-user', '', 0, 0, 1618794624);
INSERT INTO `qf_node` VALUES (101, '用户组管理', '', 'qfadmin', 'group', 'index', 2, 0, 1, '', NULL, 0, 0, 1617246287);
INSERT INTO `qf_node` VALUES (102, '参数配置', '', 'qfadmin', 'conf', 'index', 4, 5, 1, 'el-icon-set-up', '', 0, 0, 1617350626);
INSERT INTO `qf_node` VALUES (104, '菜单管理', '', 'qfadmin', 'node', 'index', 4, 6, 1, 'el-icon-s-operation', '', 0, 0, 1617350880);
INSERT INTO `qf_node` VALUES (105, '附件管理', '', 'qfadmin', 'attach', 'index', 4, 4, 1, 'el-icon-connection', '', 0, 0, 1617345521);
INSERT INTO `qf_node` VALUES (106, '清理数据', '', 'qfadmin', 'system', 'clean', 0, 0, 0, '', '', 0, 0, 1712241480);
INSERT INTO `qf_node` VALUES (107, '基础设置', '', 'qfadmin', 'conf', 'base', 3, 5, 1, 'el-icon-s-operation', '', 0, 0, 1617773467);
INSERT INTO `qf_node` VALUES (108, '资源', '', 'qfadmin', '', '', 0, 1, 1, 'el-icon-files', NULL, 0, 1622538526, 1711117979);
INSERT INTO `qf_node` VALUES (109, '资源管理', '', 'qfadmin', 'source', 'index', 108, 10, 1, 'el-icon-folder-opened', NULL, 0, 1622538567, 1726190121);
INSERT INTO `qf_node` VALUES (112, '账号管理', '', 'qfadmin', 'source', 'deposit', 108, 1, 1, 'el-icon-crop', NULL, 0, 1712112542, 1726195575);
INSERT INTO `qf_node` VALUES (113, '资源日志', '', 'qfadmin', 'source', 'log', 108, 8, 1, 'el-icon-discover', NULL, 0, 1712208103, 1726195583);
INSERT INTO `qf_node` VALUES (114, '用户需求', '', 'qfadmin', 'source', 'feedback', 108, 1, 1, 'el-icon-edit', NULL, 0, 1712230638, 1712230717);
INSERT INTO `qf_node` VALUES (118, '分类管理', '', 'qfadmin', 'source', 'category', 108, 9, 1, 'el-icon-s-operation', NULL, 0, 1716363477, 1726190129);
-- ----------------------------
-- Table structure for qf_source
-- ----------------------------
DROP TABLE IF EXISTS `qf_source`;
CREATE TABLE `qf_source` (
`source_id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '资源名称',
`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '资源地址',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '目前用于副标题 搜索',
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '内容',
`page_views` int(11) NOT NULL DEFAULT 0 COMMENT '浏览量',
`is_time` int(11) NOT NULL DEFAULT 0 COMMENT '0正常 1临时文件',
`is_user` tinyint(3) NOT NULL DEFAULT 0 COMMENT '状态 0=后台添加 1=用户添加',
`fid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '夸克标识',
`is_type` int(11) NOT NULL DEFAULT 0 COMMENT '0夸克网盘 1阿里网盘 2百度网盘 3UC网盘 4迅雷网盘',
`code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '提取码',
`source_category_id` int(11) NOT NULL DEFAULT 0 COMMENT '分类ID',
`vod_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '资源介绍',
`vod_pic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '资源图片',
`status` tinyint(3) NOT NULL DEFAULT 1 COMMENT '状态 0=禁用 1=启用',
`is_delete` tinyint(3) NOT NULL DEFAULT 0 COMMENT '是否删除 0=正常 1=软删除',
`create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间',
PRIMARY KEY (`source_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会议管理表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for qf_source_category
-- ----------------------------
DROP TABLE IF EXISTS `qf_source_category`;
CREATE TABLE `qf_source_category` (
`source_category_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '分类名称',
`image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序',
`status` int(11) NOT NULL DEFAULT 0 COMMENT '状态',
`is_sys` int(11) NOT NULL DEFAULT 0 COMMENT '1时不能删除',
`is_update` int(11) NOT NULL DEFAULT 1 COMMENT '0不更新 1更新',
`create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间',
PRIMARY KEY (`source_category_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '文章分类表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qf_source_category
-- ----------------------------
INSERT INTO `qf_source_category` VALUES (1, '短剧', '', 999, 0, 1, 1, 1725114376, 1726299215);
INSERT INTO `qf_source_category` VALUES (2, '电影', '', 998, 0, 1, 1, 1725114387, 1726303157);
INSERT INTO `qf_source_category` VALUES (3, '电视剧', '', 997, 0, 1, 1, 1725114393, 1726303158);
INSERT INTO `qf_source_category` VALUES (4, '动漫', '', 996, 0, 1, 1, 1725114400, 1726303159);
INSERT INTO `qf_source_category` VALUES (5, '综艺', '', 995, 0, 1, 1, 1725114408, 1726303160);
-- ----------------------------
-- Table structure for qf_source_log
-- ----------------------------
DROP TABLE IF EXISTS `qf_source_log`;
CREATE TABLE `qf_source_log` (
`source_log_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '转存任务名称',
`total_num` int(11) NOT NULL DEFAULT 0 COMMENT '转存总数',
`new_num` int(11) NOT NULL DEFAULT 0 COMMENT '新增数',
`update_num` int(11) NOT NULL DEFAULT 0 COMMENT '更新数(更新资源地址)',
`skip_num` int(11) NOT NULL DEFAULT 0 COMMENT '重复跳过数',
`fail_num` int(11) NOT NULL DEFAULT 0 COMMENT '失败数',
`fail_dec` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '失败原因',
`create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间',
`end_time` int(11) NOT NULL DEFAULT 0 COMMENT '结束时间',
PRIMARY KEY (`source_log_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for qf_token
-- ----------------------------
DROP TABLE IF EXISTS `qf_token`;
CREATE TABLE `qf_token` (
`token_id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL DEFAULT 0 COMMENT '用户ID',
`token` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'AccessToken',
`token_expires` int(11) NOT NULL DEFAULT 0 COMMENT '授权码过期时间',
`platform` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'all' COMMENT '来源终端',
`ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '登录IP',
`create_time` int(11) NOT NULL DEFAULT 0 COMMENT '登录时间',
PRIMARY KEY (`token_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '授权信息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for qf_user
-- ----------------------------
DROP TABLE IF EXISTS `qf_user`;
CREATE TABLE `qf_user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'UID',
`openid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '微信openid',
`nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户昵称',
`head_pic` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '头像',
`sex` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0=保密 1=男 2=女',
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '0=禁用 1=启用',
`create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间',
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信用户表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
+381
View File
@@ -0,0 +1,381 @@
<?php
header("Content-type: text/html; charset=utf-8");
//开启session
session_start();
//配置信息
$config = include './config.php';
if(empty($config)){
exit(get_tip_html('安装配置信息不存在,无法继续安装!'));
}
//安装环境验证,获取相应判断信息
define('INSTALLTYPE', 'HOST');
//本地
require './localhost.php';
//限制最大的执行时间
set_time_limit(1000);
//php版本
$phpversion = phpversion();
//数据库文件
if(!file_exists('./'.$config['sqlFileName'])){
exit(get_tip_html('数据库文件不存在,无法继续安装!'));
}
//写入数据库完成后处理的文件
if (!file_exists('./'.$config['handleFile'])) {
exit(get_tip_html('处理文件不存在,无法继续安装!'));
}
//设置报错级别并返回当前级别。
error_reporting(E_ALL & ~E_NOTICE);
//安装步骤
$steps = array(
'1' => '安装许可协议',
'2' => '运行环境检测',
'3' => '安装参数设置',
'4' => '安装详细过程',
'5' => '安装完成',
);
$step = isset($_GET['step']) ? $_GET['step'] : 1;
//当前安装步骤
$step_html = '';
foreach ($steps as $key => $value) {
$current = $key == $step? 'current':'';
$step_html .= '<li class="'.$current.'"><em>'.$key.'</em>'.$value.'</li>';
}
//安装页面
switch ($step) {
//安装许可协议
case '1':
$license = file_get_contents('./license.txt');
include ("./templates/1.php");
break;
//运行环境检测
case '2':
$server = array(
//操作系统
'os' => php_uname(),
//PHP版本
'php' => $phpversion,
);
$error = 0;
//php版本
if ($phpversion>=$config['php']) {
$server['php'] = '<span class="correct_span">&radic;</span> 支持';
} else {
$server['php'] = '<span class="correct_span error_span">&radic;</span> '.$phpversion;
$error++;
}
//上传限制
if (ini_get('file_uploads')) {
$server['uploadSize'] = '<span class="correct_span">&radic;</span> ' . ini_get('upload_max_filesize');
} else {
$server['uploadSize'] = '<span class="correct_span error_span">&radic;</span>禁止上传';
}
//session
if (function_exists('session_start')) {
$server['session'] = '<span class="correct_span">&radic;</span> 支持';
} else {
$server['session'] = '<span class="correct_span error_span">&radic;</span> 不支持';
$error++;
}
//需要读写权限的目录
$folder = $config['dirAccess'];
$install_path = str_replace('\\','/',getcwd()).'/';
$site_path = str_replace('Install/', '', $install_path);
include ("./templates/2.php");
$_SESSION['INSTALLSTATUS'] = $error == 0?'SUCCESS':$error;
break;
//安装参数设置
case '3':
verify(3);
//测试数据库链接
if (isset($_GET['testdbpwd'])) {
empty($_POST['dbhost'])?alert(0,'数据库服务器地址不能为空!','dbhost'):'';
empty($_POST['dbuser'])?alert(0,'数据库用户名不能为空!','dbuser'):'';
empty($_POST['dbname'])?alert(0,'数据库名不能为空!','dbname'):'';
empty($_POST['dbport'])?alert(0,'数据库端口不能为空!','dbport'):'';
$dbHost = $_POST['dbhost'] . ':' . $_POST['dbport'];
$mysqli = new mysqli($dbHost, $_POST['dbuser'], $_POST['dbpw']);
if(!$mysqli->server_info) {
alert(0,'数据库链接失败!','dbpw');
}else{
alert(1,'数据库链接成功!','dbpw');
}
$mysqli->close();
}
//域名+路径
$domain = empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
if ((int) $_SERVER['SERVER_PORT'] != 80) {
$domain .= ":" . $_SERVER['SERVER_PORT'];
}
$scriptName = !empty($_SERVER["REQUEST_URI"]) ? $scriptName = $_SERVER["REQUEST_URI"] : $scriptName = $_SERVER["PHP_SELF"];
$rootpath = preg_replace("/\/(I|i)nstall\/index\.php(.*)$/", "", $scriptName);
$domain = $domain . $rootpath;
include ("./templates/3.php");
break;
//安装详细过程
case '4':
if (!isset($_GET['install'])){
switch (INSTALLTYPE){
case 'SAE':
// 服务器地址
$_POST['dbhost'] = SAE_MYSQL_HOST_M;
// 端口
$_POST['dbport'] = SAE_MYSQL_PORT;
// 数据库名
$_POST['dbname'] = SAE_MYSQL_DB;
// 用户名
$_POST['dbuser'] = SAE_MYSQL_USER;
// 密码
$_POST['dbpw'] = SAE_MYSQL_PASS;
break;
case 'BAE':
// 服务器地址
$_POST['dbhost'] = HTTP_BAE_ENV_ADDR_SQL_IP;
// 端口
$_POST['dbport'] = HTTP_BAE_ENV_ADDR_SQL_PORT;
// 用户名
$_POST['dbuser'] = HTTP_BAE_ENV_SK;
// 密码
$_POST['dbpw'] = SAE_MYSQL_PASS;
break;
}
}
verify(4);
if (intval($_GET['install'])) {
dataVerify();
//关闭特殊字符提交处理到数据库
//设置时区
date_default_timezone_set('PRC');
//当前进行的数据库操作
$n = intval($_GET['n']);
$arr = array();
//数据库服务器地址
$dbHost = trim($_POST['dbhost']);
//数据库端口
$dbPort = trim($_POST['dbport']);
//数据库名
$dbName = trim($_POST['dbname']);
$dbHost = empty($dbPort) || $dbPort == 3306 ? $dbHost : $dbHost . ':' . $dbPort;
//数据库用户名
$dbUser = trim($_POST['dbuser']);
//数据库密码
$dbPwd = trim($_POST['dbpw']);
//表前缀
$dbPrefix = empty($_POST['dbprefix']) ? 'db_' : trim($_POST['dbprefix']);
//链接数据库
$mysqli = new mysqli($dbHost, $dbUser, $dbPwd);
//导入政采商品
$sitegoods = trim($_POST['sitegoods']);
// 获取错误信息
$error=$mysqli->connect_error;
if (!is_null($error)) {
alert(0,'数据库链接失败!');
}
// 设置字符集
$mysqli->query("SET NAMES 'utf8'");
if ($mysqli->server_info < 5.0) {
alert(0,'请将您的mysql升级到5.0以上');
}
// 创建数据库并选中
if(!$mysqli->select_db($dbName)){
$create_sql='CREATE DATABASE IF NOT EXISTS '.$dbName.' DEFAULT CHARACTER SET utf8;';
$mysqli->query($create_sql) or alert(0,'创建数据库失败');
$mysqli->select_db($dbName);
}
// 导入sql数据并创建表
$sqldata = file_get_contents('./'.$config['sqlFileName']);
if(empty($sqldata)){
alert(0,'数据库文件不能为空!');
}
$sql_array=preg_split("/;[\r\n]+/", str_replace($config['dbPrefix'],$dbPrefix,$sqldata));
$counts = count($sql_array);
for ($i = $n; $i < $counts; $i++) {
$sql = trim($sql_array[$i]);
if (strstr($sql, 'CREATE TABLE')) {
preg_match('/CREATE TABLE `([^ ]*)`/', $sql, $matches);
$mysqli->query($sql_array[$i]);
$info = '<li><span class="correct_span">&radic;</span>创建数据表' . $matches[1] . ',完成!<span style="float: right;">'.date('Y-m-d H:i:s').'</span></li> ';
$i++;
alert(1,$info,$i);
}else{
if(!empty($sql)){
$mysqli->query($sql);
}
}
}
//处理
$data = include './'.$config['handleFile'];
$_SESSION['INSTALLOK'] = $data['status']?1:0;
alert($data['status'],$data['info']);
}
include ("./templates/4.php");
break;
//安装完成
case '5':
verify(5);
include ("./templates/5.php");
//安装完成,生成.lock文件
if(isset($_SESSION['INSTALLOK']) && $_SESSION['INSTALLOK'] == 1){
filewrite($config['installFile']);
}
unset($_SESSION);
break;
}
/**
* 错误提示html
*/
function get_tip_html($info){
return '<div>'.$info.'</div>';
}
//返回提示信息
function alert($status,$info,$type = 0){
exit(json_encode(array('status'=>$status,'info'=>$info,'type'=>$type)));
}
function verify($step = 3){
if($step >= 3){
//未运行环境检测,跳转到安装许可协议页面
if(!isset($_SESSION['INSTALLSTATUS'])){
header('location:./index.php');
exit();
}
//运行环境检测存在错误,返回运行环境检测
if($_SESSION['INSTALLSTATUS'] != 'SUCCESS'){
header('location:./index.php?step=2');
exit();
}
}
if($step == 4){
//未提交数据
if(empty($_POST)){
header('location:./index.php?step=3');
exit();
}
}
if($step >= 5){
//数据库未写入完成
if(!isset($_SESSION['INSTALLOK'])){
header('location:./index.php?step=4');
exit();
}
}
}
function dataVerify(){
empty($_POST['dbhost'])?alert(0,'数据库服务器不能为空!'):'';
empty($_POST['dbport'])?alert(0,'数据库端口不能为空!'):'';
empty($_POST['dbuser'])?alert(0,'数据库用户名不能为空!'):'';
empty($_POST['dbname'])?alert(0,'数据库名不能为空!'):'';
empty($_POST['dbprefix'])?alert(0,'数据库表前缀不能为空!'):'';
empty($_POST['manager'])?alert(0,'管理员帐号不能为空!'):'';
empty($_POST['manager_pwd'])?alert(0,'管理员密码不能为空!'):'';
}
/**
* 判断目录是否可写
*/
function testwrite($d) {
$tfile = "_test.txt";
$fp = fopen($d . "/" . $tfile, "w");
if (!$fp) {
return false;
}
fclose($fp);
$rs = unlink($d . "/" . $tfile);
if ($rs) {
return true;
}
return false;
}
/**
* 创建目录
*/
function dir_create($path, $mode = 0777) {
if (is_dir($path)) {
return TRUE;
}
mkdir($path, $mode, true);
chmod($path, $mode);
}
/**
* 数据库语句解析
* @param $sql 数据库
* @param $newTablePre 新的前缀
* @param $oldTablePre 旧的前缀
*/
function sql_split($sql, $newTablePre, $oldTablePre) {
//前缀替换
if ($newTablePre != $oldTablePre){
$sql = str_replace($oldTablePre, $newTablePre, $sql);
}
$sql = preg_replace("/TYPE=(InnoDB|MyISAM|MEMORY)( DEFAULT CHARSET=[^; ]+)?/", "ENGINE=\\1 DEFAULT CHARSET=utf8", $sql);
$sql = str_replace("\r", "\n", $sql);
$ret = array();
$queriesarray = explode(";\n", trim($sql));
unset($sql);
foreach ($queriesarray as $k=>$query) {
$ret[$k] = '';
$queries = explode("\n", trim($query));
$queries = array_filter($queries);
foreach ($queries as $query) {
$str1 = substr($query, 0, 1);
if ($str1 != '#' && $str1 != '-')
$ret[$k] .= $query;
}
}
return $ret;
}
/**
* 产生随机字符串
* 产生一个指定长度的随机字符串,并返回给用户
* @access public
* @param int $len 产生字符串的位数
* @return string
*/
function genRandomString($len = 6) {
$chars = array(
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
"l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
"w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
"H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
"S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",
"3", "4", "5", "6", "7", "8", "9", '!', '@', '#', '$',
'%', '^', '&', '*', '(', ')'
);
$charsLen = count($chars) - 1;
shuffle($chars); // 将数组打乱
$output = "";
for ($i = 0; $i < $len; $i++) {
$output .= $chars[mt_rand(0, $charsLen)];
}
return $output;
}
/**
* 获取客户端IP地址
* @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字
* @return mixed
*/
function get_client_ip($type = 0) {
$type = $type ? 1 : 0;
static $ip = NULL;
if ($ip !== NULL) return $ip[$type];
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$pos = array_search('unknown',$arr);
if(false !== $pos) unset($arr[$pos]);
$ip = trim($arr[0]);
}elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
// IP地址合法验证
$long = sprintf("%u",ip2long($ip));
$ip = $long ? array($ip, $long) : array('0.0.0.0', 0);
return $ip[$type];
}
View File
+14
View File
@@ -0,0 +1,14 @@
请您在使用前仔细阅读如下条款。包括免除或者限制作者责任的免责条款及对用户的权利限制。您的安装使用行为将视为对本《用户许可协议》的接受,并同意接受本《用户许可协议》各项条款的约束。
一、安装和使用:
您必须保证在不进行非法活动,不违反国家相关政策法规的前提下使用本软件。
二:郑重声明:
1、任何个人或组织不得在未经授权的情况下删除、修改、拷贝本软件及其他副本上一切关于版权的信息。
三、免责声明:
本软件并无附带任何形式的明示的或暗示的保证,包括任何关于本软件的适用性, 无侵犯知识产权或适合作某一特定用途的保证。
在任何情况下,对于因使用本软件或无法使用本软件而导致的任何损害赔偿,作者均无须承担法律责任。作者不保证本软件所包含的资料,文字、图形、链接或其它事项的准确性或完整性。
所有由用户自己制作、下载、使用的第三方信息数据和插件所引起的一切版权问题或纠纷,本软件概不承担任何责任。
版权所有 (c) 2024-2025,系统保留所有权利。
+10
View File
@@ -0,0 +1,10 @@
<?php
//检测是否已经安装
if(file_exists($config['installFile'])){
exit(get_tip_html($config['alreadyInstallInfo']));
}
//写入文件
function filewrite($file){
@touch($file);
}
+46
View File
@@ -0,0 +1,46 @@
<?php
$username = trim($_POST['manager']);
$password = trim($_POST['manager_pwd']);
//网站名称
$site_name = addslashes(trim($_POST['sitename']));
//更新配置信息
$mysqli->query("UPDATE `{$dbPrefix}conf` SET `conf_value` = '$site_name' WHERE conf_key='app_name'");
if(INSTALLTYPE == 'HOST'){
$db_str=<<<php
APP_DEBUG = true
SYSTEM_SALT= {$site_name}
[APP]
DEFAULT_TIMEZONE = Asia/Chongqing
[DATABASE]
TYPE = mysql
HOSTNAME = {$dbHost}
DATABASE = {$dbName}
USERNAME = {$dbUser}
PASSWORD = {$dbPwd}
HOSTPORT = {$dbPort}
CHARSET = utf8mb4
DEBUG = false
PREFIX = {$dbPrefix}
[LANG]
default_lang = zh-cn
php;
// 创建数据库链接配置文件
file_put_contents('../../.env', $db_str);
}
//插入管理员
//生成随机认证码
$salt = genRandomString(4);
$time = time();
$ip = get_client_ip();
$password = sha1($password . $salt . $password . $salt);
$url = "insert into `{$dbPrefix}admin` VALUES (1,'{$username}', '{$password}', '{$salt}', '超级管理员','','超级管理员','',0.00,1,'127.0.0.1',0,'{$time}','{$time}')";
$mysqli->query($url);
$mysqli->close();
return array('status'=>2,'info'=>'成功添加管理员<br />成功写入配置文件<br>安装完成...');
+118
View File
@@ -0,0 +1,118 @@
<?php
//设置storage的domain
if($_GET['step'] == 0){
if(empty($_POST['storagedomain'])){
$step_html = '<li class="current"><em>0</em>Storage设置</li>';
include './templates/0.php';
exit;
} else {
$_SESSION['STORAGEDOMAIN'] = $_POST['storagedomain'];
if(!empty($_SESSION['STORAGEDOMAIN'])){
header('location:./index.php?step=1');
exit();
}
}
}
if(!isset($_SESSION['STORAGEDOMAIN']) || empty($_SESSION['STORAGEDOMAIN'])){
header('location:./index.php?step=0');
exit;
}
$config['uploaddir'] = $_SESSION['STORAGEDOMAIN'];
//测试该该storage是否有效!
if(!filewrite($config['uploaddir'].'/install_file.lock')){
exit(get_tip_html('该storage无效!'));
} else{
file_delete($config['uploaddir'].'/install_file.lock');
}
define('SAESTOR_INSTALL_NAME', $config['uploaddir'].'/saestor_'. $_SERVER['HTTP_APPVERSION'] . '_install.lock');
$config['alreadySaeInstallInfo'] = "版本" . $_SERVER['HTTP_APPVERSION'] . "已完成安装!请删除网站根目录下的install目录!<br />如果需要重新安装,请先删除storage内的 saestor_" . $_SERVER['HTTP_APPVERSION'] . "_install.lock 文件";
if(fileExists(SAESTOR_INSTALL_NAME)){
exit(get_tip_html($config['alreadySaeInstallInfo']));
}
if(!is_storage){
exit(get_tip_html('请开启storage服务!'));
}
if(!is_mc){
exit(get_tip_html('请开启memcahce服务!'));
}
if(!is_mysql){
exit(get_tip_html('请开启mysql服务!'));
}
if(!is_kv){
exit(get_tip_html('请开启KV数据库服务!'));
}
//SaeStorage
function SaeStorage(){
static $SaeStorage = array();
if(!isset($SaeStorage['SaeStorage'])){
$SaeStorage['SaeStorage'] = new SaeStorage();
}
return $SaeStorage['SaeStorage'];
}
//domain 路径
function file_getdomainfilepath($filename){
$arr=explode('/',ltrim($filename,'./'));
if($arr[count($arr)-1] == ''){
unset($arr[count($arr)-1]);
}
$domain=array_shift($arr);
$filePath=implode('/',$arr);
return array('domain'=>$domain,'filepath'=>$filePath);
}
//检查文件是否存在
function fileExists($filename){
$arr=file_getdomainfilepath($filename);
return SaeStorage()->fileExists($arr['domain'], $arr['filepath']);
}
//写入文件
function filewrite($file = ''){
$file = empty($file) ? SAESTOR_INSTALL_NAME:$file;
$arr=file_getdomainfilepath($file);
SaeStorage()->write($arr['domain'], $arr['filepath'],'1');
}
//删除文件
function file_delete($filename){
$arr=file_getdomainfilepath($filename);
return SaeStorage()->delete($arr['domain'], $arr['filepath']);
}
//判断是否开启storage
function is_storage() {
$s = new SaeStorage();
if (!$s->write(SAESTOR_NAME, 'is_storage', '1')) {
return FALSE;
} else {
return TRUE;
}
}
//判断是否开启memcahce
function is_mc() {
$mmc = @memcache_init();
if ($mmc) {
return TRUE;
} else {
return FALSE;
}
}
//判断是否开启mysql
function is_mysql() {
$mysql = @new SaeMysql();
$sql = "select database()";
$data = @$mysql->getData($sql);
if ($data) {
return TRUE;
} else {
return FALSE;
}
}
//判断是否开启KV数据库
function is_kv(){
$kv=new SaeKV();
if($kv->init()){
return TRUE;
} else {
return FALSE;
}
}
Binary file not shown.
+10
View File
@@ -0,0 +1,10 @@
<?php require './templates/header.php';?>
<div class="section">
<div class="main">
<pre class="pact"><?php echo $license;?></pre>
</div>
</div>
<div class="btn-box">
<a href="./index.php?step=2" class="btn">接 受</a>
</div>
<?php require './templates/footer.php';?>
+78
View File
@@ -0,0 +1,78 @@
<?php require './templates/header.php';?>
<div class="section">
<div class="main server">
<table width="100%">
<tr>
<td class="td1">环境检测</td>
<td class="td1" width="25%">推荐配置</td>
<td class="td1" width="25%">当前状态</td>
<td class="td1" width="25%">最低要求</td>
</tr>
<tr>
<td>操作系统</td>
<td>类UNIX</td>
<td><span class="correct_span">&radic;</span> <?php echo $server['os']; ?></td>
<td>不限制</td>
</tr>
<tr>
<td>PHP版本</td>
<td><?php echo $config['php_t']; ?></td>
<td><?php echo $server['php']; ?></td>
<td><?php echo $config['php']; ?></td>
</tr>
<tr>
<td>附件上传</td>
<td>>2M</td>
<td><?php echo $server['uploadSize']; ?></td>
<td>不限制</td>
</tr>
<tr>
<td>session</td>
<td>开启</td>
<td><?php echo $server['session']; ?></td>
<td>开启</td>
</tr>
</table>
<?php if(INSTALLTYPE == 'HOST'){ ?>
<table width="100%">
<tr>
<td class="td1">目录、文件权限检查</td>
<td class="td1" width="25%">写入</td>
<td class="td1" width="25%">读取</td>
</tr>
<?php
foreach($folder as $dir){
$Testdir = $site_path.$dir;
dir_create($Testdir);
if(TestWrite($Testdir)){
$w = '<span class="correct_span">&radic;</span>可写 ';
}else{
$w = '<span class="correct_span error_span">&radic;</span>不可写 ';
$error++;
}
if(is_readable($Testdir)){
$r = '<span class="correct_span">&radic;</span>可读' ;
}else{
$r = '<span class="correct_span error_span">&radic;</span>不可读';
$error++;
}
?>
<tr>
<td><?php echo $dir; ?></td>
<td><?php echo $w; ?></td>
<td><?php echo $r; ?></td>
</tr>
<?php } ?>
</table>
<?php } ?>
</div>
</div>
<div class="btn-box">
<a href="./index.php?step=2" class="btn">重新检测</a>
<?php if(empty($error)){ ?>
<a href="./index.php?step=3" class="btn">下一步</a>
<?php } else { ?>
<button href="#" class="btn error" disabled>当前有误</button>
<?php } ?>
</div>
<?php require './templates/footer.php';?>
+264
View File
@@ -0,0 +1,264 @@
<?php require './templates/header.php';?>
<form id="J_install_form" action="index.php?step=4" method="post">
<div class="section">
<div class="main server">
<table width="100%">
<tr>
<td class="td1" width="100">数据库信息</td>
<td class="td1" width="200">&nbsp;</td>
<td class="td1">&nbsp;</td>
</tr>
<?php if(INSTALLTYPE == 'HOST'){?>
<tr>
<td class="tar">数据库服务器:</td>
<td><input type="text" name="dbhost" id="dbhost" value="127.0.0.1" class="input"></td>
<td><div id="J_install_tip_dbhost"><span class="gray">数据库服务器地址,一般为localhost</span></div></td>
</tr>
<tr>
<td class="tar">数据库端口:</td>
<td><input type="text" name="dbport" id="dbport" value="3306" class="input"></td>
<td><div id="J_install_tip_dbport"><span class="gray">数据库服务器端口,一般为3306</span></div></td>
</tr>
<tr>
<td class="tar">数据库用户名:</td>
<td><input type="text" name="dbuser" id="dbuser" value="" class="input"></td>
<td><div id="J_install_tip_dbuser"></div></td>
</tr>
<tr>
<td class="tar">数据库密码:</td>
<td><input type="text" name="dbpw" id="dbpw" value="" class="input" autoComplete="off"></td>
<td><div id="J_install_tip_dbpw"></div></td>
</tr>
<?php }?>
<? if(INSTALLTYPE == 'HOST' || INSTALLTYPE == 'BAE'){ ?>
<tr>
<td class="tar">数据库名:</td>
<td><input type="text" name="dbname" id="dbname" value="<?php echo $config['dbName'] ?>" class="input"></td>
<td><div id="J_install_tip_dbname"></div></td>
</tr>
<?php } ?>
<tr>
<td class="tar">数据库表前缀:</td>
<td><input type="text" name="dbprefix" id="dbprefix" value="<?php echo $config['dbPrefix'] ?>" class="input"></td>
<td><div id="J_install_tip_dbprefix"><span class="gray">建议使用默认</span></div></td>
</tr>
<tr>
<td class="tar">测试数据库连接:</td>
<td><button type="button" class="btn" onclick="TestDbPwd()">测试连接</button></td>
<td>&nbsp;</td>
</tr>
</table>
<table width="100%">
<tr>
<td class="td1" width="100">网站信息</td>
<td class="td1" width="200">&nbsp;</td>
<td class="td1">&nbsp;</td>
</tr>
<tr>
<td class="tar">网站名称:</td>
<td><input type="text" name="sitename" value="<?php echo $config['siteName'] ?>" class="input"></td>
<td><div id="J_install_tip_sitename"></div></td>
</tr>
<tr>
<td class="tar">管理员帐号:</td>
<td><input type="text" name="manager" value="" class="input"></td>
<td><div id="J_install_tip_manager"></div></td>
</tr>
<tr>
<td class="tar">密码:</td>
<td><input type="text" name="manager_pwd" id="J_manager_pwd" class="input" autoComplete="off"></td>
<td><div id="J_install_tip_manager_pwd"></div></td>
</tr>
<tr>
<td class="tar">重复密码:</td>
<td><input type="text" name="manager_ckpwd" class="input" autoComplete="off"></td>
<td><div id="J_install_tip_manager_ckpwd"></div></td>
</tr>
</table>
<div id="J_response_tips" style="display:none;"></div>
</div>
</div>
<div class="btn-box">
<a href="./index.php?step=2" class="btn">上一步</a>
<button type="submit" class="btn btn_submit J_install_btn">创建数据</button>
</div>
</form>
<script src="./templates/js/jquery.js"></script>
<script src="./templates/js/validate.js"></script>
<script>
function TestDbPwd(){
$.ajax({
type: "POST",
dataType:'json',
url: "./index.php?step=3&testdbpwd=1",
data: {'dbhost':$('#dbhost').val(),'dbuser':$('#dbuser').val(),'dbpw':$('#dbpw').val(),'dbname':$('#dbname').val(),'dbport':$('#dbport').val()},
success: function(data){
if(data.status != 1){
$('#'+ data.type).focus();
}
alert(data.info);
},
error:function(){
alert('数据库链接配置失败');
$('#dbpw').focus();
}
});
}
$(function(){
//聚焦时默认提示
var focus_tips = {
dbhost : '数据库服务器地址,一般为localhost',
dbport : '数据库服务器端口,一般为3306',
dbuser : '请输入数据库用户名',
dbpw : '请输入数据库密码',
dbname : '请输入数据库名',
dbprefix : '建议使用默认,同一数据库安装多个时需修改',
manager : '创始人帐号,拥有站点后台所有管理权限',
manager_pwd : '请输入管理员密码',
manager_ckpwd : '请再次输入管理员密码',
sitename : '请再次输入网站名称',
sitekeywords : '',
siteinfo : '',
manager_email : ''
};
var install_form = $("#J_install_form"),
response_tips = $('#J_response_tips'); //后端返回提示
install_form.validate({
//debug : true,
//onsubmit : false,
errorPlacement: function(error, element) {
//错误提示容器
$('#J_install_tip_'+ element[0].name).html(error);
},
errorElement: 'span',
errorClass : 'tips_error',
validClass : 'tips_error',
onkeyup : false,
focusInvalid : false,
rules: {
dbhost: {
required : true
},
dbport:{
required : true
},
dbuser: {
required : true
},
dbname: {
required : true
},
dbprefix : {
required : true
},
manager: {
required : true
},
manager_pwd: {
required : true,
minlength : 6
},
sitename: {
required : true,
},
manager_ckpwd: {
required : true,
equalTo : '#J_manager_pwd'
},
manager_email: {
required : true,
email : true
}
},
highlight : false,
unhighlight : function(element, errorClass, validClass) {
var tip_elem = $('#J_install_tip_'+ element.name);
tip_elem.html('<span class="'+ validClass +'" data-text="text"><span>');
},
onfocusin : function(element){
var name = element.name;
$('#J_install_tip_'+ name).html('<span data-text="text">'+ focus_tips[name] +'</span>');
$(element).parents('tr').addClass('current');
},
onfocusout : function(element){
var _this = this;
$(element).parents('tr').removeClass('current');
if(element.name === 'email') {
//邮箱匹配点击后,延时处理
setTimeout(function(){
_this.element(element);
}, 150);
}else{
_this.element(element);
}
},
messages: {
dbhost: {
required : '数据库服务器地址不能为空'
},
dbport:{
required : '数据库服务器端口不能为空'
},
dbuser: {
required : '数据库用户名不能为空'
},
dbname: {
required : '数据库名不能为空'
},
dbprefix : {
required : '数据库表前缀不能为空'
},
sitename : {
required : '请再次输入网站名称'
},
manager: {
required : '管理员帐号不能为空'
},
manager_pwd: {
required : '密码不能为空',
minlength : '密码至少6位'
},
manager_ckpwd: {
required : '请再次输入管理员密码',
equalTo : '两次输入的密码不一致。请重新输入'
},
manager_email: {
required : 'Email不能为空',
email : '请输入正确的电子邮箱地址'
}
},
submitHandler:function(form) {
$.ajax({
type: "POST",
dataType:'json',
url: "./index.php?step=3&testdbpwd=1",
data: {'dbhost':$('#dbhost').val(),'dbuser':$('#dbuser').val(),'dbpw':$('#dbpw').val(),'dbname':$('#dbname').val(),'dbport':$('#dbport').val()},
success: function(data){
if(data.status != 1){
alert(data.info);
$('#'+ data.type).focus();
return;
}
form.submit();
return true;
},
error:function(){
alert('数据库链接配置失败');
$('#dbpw').focus();
return;
}
});
}
});
});
</script>
<?php require './templates/footer.php';?>
+48
View File
@@ -0,0 +1,48 @@
<?php require './templates/header.php';?>
<div class="section">
<div class="main install">
<ul id="loginner"></ul>
</div>
</div>
<div class="btn-box">
<a href="javascript:;" class="btn_old" id="installloading">
<img src="templates/images/loading.gif" align="absmiddle">&nbsp;正在安装...
</a>
</div>
<script src="./templates/js/jquery.js"></script>
<script type="text/javascript">
var n=0;
var data = <?php echo json_encode($_POST);?>;
$.ajaxSetup ({ cache: false });
function reloads(n) {
var url = "./index.php?step=4&install=1&n="+n;
$.ajax({
type: "POST",
url: url,
data: data,
dataType: 'json',
success: function(data){
$('#loginner').append(data.info);
if(data.status == 1){
reloads(data.type);
}
if(data.status == 0){
$('#installloading').removeClass('btn_old').addClass('btn').html('继续安装').unbind('click').click(function(){
reloads(0);
});
alert('安装已停止!');
}
if(data.status == 2){
$('#installloading').removeClass('btn_old').addClass('btn').attr('href','./index.php?step=5').html('安装完成');
setTimeout(function(){
window.location.href='./index.php?step=5';
},5000);
}
}
});
}
$(function(){
reloads(n);
})
</script>
<?php require './templates/footer.php';?>
+20
View File
@@ -0,0 +1,20 @@
<?php require './templates/header.php';?>
<div class="section">
<div class="main">
<div class="success_tip cc">
<a href="../qfadmin">安装完成,进入后台管理</a>
<?php if(INSTALLTYPE == 'HOST'){ ?>
<p><?php echo $config['alreadyInstallInfo']?><p>
<?php } else if(INSTALLTYPE == 'SAE'){ ?>
<p><?php echo $config['alreadySaeInstallInfo']?><p>
<?php } else if(INSTALLTYPE == 'BAE'){ ?>
<p><?php echo $config['alreadyBaeInstallInfo']?><p>
<?php } ?>
</div>
</div>
</div>
<div class="btn-box">
<a href="../index" class="btn">进入前台</a>
<a href="../qfadmin" class="btn">进入后台</a>
</div>
<?php require './templates/footer.php';?>
+219
View File
@@ -0,0 +1,219 @@
/* 初始化 */
html{-webkit-text-size-adjust:none;overflow-y:scroll;}
body,input,button,select,textarea{font:12px/1.5 Microsoft YaHei,Tahoma,Helvetica,'SimSun',sans-serif;color:#444;}
html,body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,th,td{margin:0;padding:0;border:none}
body{background:url(../images/bg.png);}
td,th,div {word-break:break-all;word-wrap:break-word;}
address,cite,dfn,em,var{font-style:normal;font-weight:normal}
table{empty-cells:show;border-spacing:0;}
ul,ol,li{list-style:none}
ul li,ol li{list-style:none;}
img{border:none;}
label{cursor:pointer;}
a{text-decoration:none;}
a:hover{text-decoration:underline;}
button,input,select,textarea{font-size:100%;}
hr{display:block;clear:both;*margin-top:-8px !important;*margin-bottom:-8px !important;}
/* input select textarea */
input[type="checkbox"]{vertical-align:middle; margin-top:0;}
input,textarea{padding:6px;border-radius: 4px;font-size: 100%;line-height: 16px\9;*line-height: 18px;*vertical-align: -2px;background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;margin-right: 3px;}
textarea{resize:none;min-height:60px;line-height: 15px;}
textarea:focus,input:focus,select:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}
select{height: 30px;line-height: 30px;background-color: #fff;border: 1px solid #ccc;display: inline-block;padding: 6px;color: #555;margin-top: -2px;padding-top: 4px;*margin-top: -8px;vertical-align: middle;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;font-size: 100%;}
/* 基础样式 */
.clearfix {_zoom: 1;}
.clearfix:after {content: ".";display: block;visibility: hidden;clear: both;height: 0px;}
.wrap{margin:90px auto 0;box-shadow:0 0 20px #3F3F3F;width:980px;background-color:#fff;border-radius: 6px;overflow: hidden;}
/* 头部样式 */
.header{height:80px;padding: 0 5px;box-shadow:0 3px 3px #ddd;position:relative;color:#fff;background:#133ab3;}
.header-title{float:left;font-size: 40px;line-height: 80px;}
.header-install{float: left;margin-top: 26px;font-size: 20px; padding-left: 20px;}
.header-version{float: right;margin-top: 50px;}
/* 步骤 */
.step{border-bottom:1px solid #dce1e5;height:60px;}
.step li{float:left;height:59px;line-height:60px;width:20%;text-align:center;font-size:14px;color:#6f7885;font-weight:700;}
.step li em{width:32px;height:32px;text-align:center;line-height:32px;display:inline-block;background:#999999;border-radius: 50%;font-size:20px;color:#fff;font-family:Microsoft Yahei;margin-right:10px;vertical-align:-1px}
.step li.current{background-position:right -106px;background-repeat:no-repeat;color:#246ea5;}
.step li.current em{background:#133ab3}
.step li.on{background-position:0 -176px;}
.step li.on em{background-position:-70px -70px;}
.pact {box-shadow: 5px 5px 5px #f7f7f7 inset;height: 350px;padding: 20px 20px; white-space: pre-wrap; overflow: hidden;display: block;overflow-y: scroll;margin: 0 auto;font-size: 12px;line-height: 1.5;outline: none;}
/* 服务器检测/信息输入 */
.server{padding:20px 20px 0 65px;}
.server table{margin-bottom:20px;}
.server td{padding:3px 5px;}
.server .td1{color:#417b9d;font-weight:700;}
.server .input{border:1px solid;border-color:#e3e9ef;padding:3px;width:200px;}
.server .input:hover,
.server .input:focus{border:1px solid #0e85d5;outline:none;}
.gray{color:#bbb;}
.server tr:hover .gray{color:#333;}
/* 正确错误 */
.correct_span,
.error_span{display:block;float:left;width:20px;height:16px;text-indent:-2000em;margin-top: 2px;overflow:hidden;background:url(../images/icon.png) no-repeat;margin-right:5px;}
.error_span{background-position:0 -23px;}
/* 成功提示 */
.success_tip{background:#fff url(../images/complete.png) 210px center no-repeat;font-size: 14px;padding:50px 80px 50px 300px;line-height:2;}
.success_tip a{color:#0166a5;text-decoration:none;font-size: 20px;font-weight: 700;}
.success_tip a:hover{text-decoration:underline;}
/*
===================
操作提示
>> tips 普通
>> tips_error 错误
>> tips_success 正确
>> tips_loading 加载中
使用方法
可独立样式使用,亦可与tips组装,例:
<div class="tips"><span class="tips_error">错误内容</span></div>
可在外出包裹 tips_block 对错误提示进行块级效果展示
===================
*/
.tips,.tips_block span{line-height:25px;padding:0 6px;}
.tips{border:1px solid #faebd2;background:#ffffe9;color:#666;}
.tips_error,.tips_success{color:#cc3333;padding-left:16px;background:url(../images/tips_system.png) -20px 2px no-repeat;display:inline-block;line-height:18px;}
.tips_success{color:#008800;background-position:0 -19px;}
.tips_loading{color:#cc3333;color:#333333;display:inline-block;line-height:20px;}
/* 数据表写入 */
.install{ box-shadow:5px 5px 5px #f7f7f7 inset;border:1px solid #bdbcbc;width:900px;height:350px;padding:10px;overflow:hidden;display:block;overflow-y:scroll;margin:25px auto;font-size:12px;margin-bottom:22px;outline:none}
.install ul{line-height:1.8;}
/* loading */
.loading{border-radius: 16px;width: 100px;height: 30px;line-height: 30px;text-align: center;background:#000;background-color: rgba(0, 0, 0, 0.5);color: white;position: fixed;_position:absolute;left: 50%;margin-left: -50px;top: 50%;margin-top:-15px;}
.loading span{background:url(../images/pop_loading.gif) 0 center no-repeat;padding-left:24px;}
/* 按钮 */
.btn-box{padding: 10px;text-align: center;border-top: 1px solid #ccc;}
.btn,.btn_old{display:inline-block;width:100px;height:30px;background:#133ab3;font:bold 14px/30px Arial,"Microsoft Yahei",Simsun;text-decoration:none;color:#fff;margin:0 5px;border:0 none;cursor:pointer;vertical-align:top;}
.btn:hover{background-position:0 -30px;text-decoration:none;}
.btn.error{background-position: 0 -60px;color: #DF0000;}
.btn_old,.btn_old:hover{background-position:0 -60px;color:#999 !important;cursor:default;text-decoration:none;}
/* 底部 */
.footer{text-align:center;padding:15px 0 50px;color:#999999;}
.footer a{color:#999;text-decoration:none;}
body {
background: #f5f6fa;
}
.wrap {
margin: 50px auto 0;
box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
width: 1000px;
background-color: #fff;
border-radius: 8px;
overflow: hidden;
}
.header {
height: 90px;
padding: 0 30px;
box-shadow: 0 2px 10px rgba(19, 58, 179, 0.1);
position: relative;
color: #fff;
background: linear-gradient(135deg, #133ab3, #1e56ff);
}
.header-title {
float: left;
font-size: 42px;
line-height: 90px;
font-weight: 300;
}
.header-install {
float: left;
margin-top: 30px;
font-size: 22px;
padding-left: 25px;
}
.step {
border-bottom: 1px solid #eef0f5;
height: 70px;
background: #fff;
}
.step li {
float: left;
height: 69px;
line-height: 70px;
width: 20%;
text-align: center;
font-size: 15px;
color: #6f7885;
font-weight: 600;
position: relative;
transition: all 0.3s ease;
}
.step li em {
width: 36px;
height: 36px;
text-align: center;
line-height: 36px;
display: inline-block;
background: #e0e6ed;
border-radius: 50%;
font-size: 18px;
color: #fff;
margin-right: 12px;
transition: all 0.3s ease;
}
.step li.current {
color: #133ab3;
}
.step li.current em {
background: #133ab3;
box-shadow: 0 2px 10px rgba(19, 58, 179, 0.2);
}
/* 按钮样式优化 */
.btn {
display: inline-block;
width: 120px;
height: 40px;
background: #133ab3;
font: 600 15px/40px "Microsoft Yahei";
text-decoration: none;
color: #fff;
margin: 0 8px;
border: 0 none;
cursor: pointer;
border-radius: 4px;
transition: all 0.3s ease;
}
.btn:hover {
background: #1e56ff;
transform: translateY(-1px);
box-shadow: 0 2px 10px rgba(19, 58, 179, 0.2);
}
/* 输入框样式优化 */
input, textarea {
padding: 8px 12px;
border-radius: 4px;
font-size: 14px;
line-height: 1.5;
background-color: #fff;
border: 1px solid #dce1e5;
transition: all 0.3s ease;
}
input:focus, textarea:focus {
border-color: #133ab3;
box-shadow: 0 0 0 2px rgba(19, 58, 179, 0.1);
}
.btn.error{
color: #999999;
background: #eeeeee;
}
+4
View File
@@ -0,0 +1,4 @@
</div>
<div class="footer"> <?php echo $config['footerInfo'];?> </div>
</body>
</html>
+18
View File
@@ -0,0 +1,18 @@
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<title><?php echo $config['name'].' '.$config['version']; ?> - <?php echo $config['powered']; ?></title>
<link rel="stylesheet" href="./templates/css/install.css" />
</head>
<body>
<div class="wrap">
<div class="header">
<div class="header-install"><?php echo $config['name']; ?>-安装向导</div>
<div class="header-version">版本:<?php echo $config['version'];?></div>
</div>
<div class="step">
<ul>
<?php echo $step_html;?>
</ul>
</div>
Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 666 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 711 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 875 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 B

File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff