更新3.0
@@ -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应用并响应
|
||||
|
||||
@@ -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#',
|
||||
);
|
||||
@@ -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 文件,然后再尝试安装!',
|
||||
);
|
||||
@@ -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;
|
||||
@@ -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">√</span> 支持';
|
||||
} else {
|
||||
$server['php'] = '<span class="correct_span error_span">√</span> '.$phpversion;
|
||||
$error++;
|
||||
}
|
||||
//上传限制
|
||||
if (ini_get('file_uploads')) {
|
||||
$server['uploadSize'] = '<span class="correct_span">√</span> ' . ini_get('upload_max_filesize');
|
||||
} else {
|
||||
$server['uploadSize'] = '<span class="correct_span error_span">√</span>禁止上传';
|
||||
}
|
||||
//session
|
||||
if (function_exists('session_start')) {
|
||||
$server['session'] = '<span class="correct_span">√</span> 支持';
|
||||
} else {
|
||||
$server['session'] = '<span class="correct_span error_span">√</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">√</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];
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
请您在使用前仔细阅读如下条款。包括免除或者限制作者责任的免责条款及对用户的权利限制。您的安装使用行为将视为对本《用户许可协议》的接受,并同意接受本《用户许可协议》各项条款的约束。
|
||||
|
||||
一、安装和使用:
|
||||
您必须保证在不进行非法活动,不违反国家相关政策法规的前提下使用本软件。
|
||||
|
||||
二:郑重声明:
|
||||
1、任何个人或组织不得在未经授权的情况下删除、修改、拷贝本软件及其他副本上一切关于版权的信息。
|
||||
|
||||
三、免责声明:
|
||||
本软件并无附带任何形式的明示的或暗示的保证,包括任何关于本软件的适用性, 无侵犯知识产权或适合作某一特定用途的保证。
|
||||
在任何情况下,对于因使用本软件或无法使用本软件而导致的任何损害赔偿,作者均无须承担法律责任。作者不保证本软件所包含的资料,文字、图形、链接或其它事项的准确性或完整性。
|
||||
所有由用户自己制作、下载、使用的第三方信息数据和插件所引起的一切版权问题或纠纷,本软件概不承担任何责任。
|
||||
|
||||
版权所有 (c) 2024-2025,系统保留所有权利。
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
//检测是否已经安装
|
||||
if(file_exists($config['installFile'])){
|
||||
exit(get_tip_html($config['alreadyInstallInfo']));
|
||||
}
|
||||
|
||||
//写入文件
|
||||
function filewrite($file){
|
||||
@touch($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>安装完成...');
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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';?>
|
||||
@@ -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">√</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">√</span>可写 ';
|
||||
}else{
|
||||
$w = '<span class="correct_span error_span">√</span>不可写 ';
|
||||
$error++;
|
||||
}
|
||||
if(is_readable($Testdir)){
|
||||
$r = '<span class="correct_span">√</span>可读' ;
|
||||
}else{
|
||||
$r = '<span class="correct_span error_span">√</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';?>
|
||||
@@ -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"> </td>
|
||||
<td class="td1"> </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> </td>
|
||||
</tr>
|
||||
</table>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="td1" width="100">网站信息</td>
|
||||
<td class="td1" width="200"> </td>
|
||||
<td class="td1"> </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';?>
|
||||
@@ -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"> 正在安装...
|
||||
</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';?>
|
||||
@@ -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';?>
|
||||
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
</div>
|
||||
<div class="footer"> <?php echo $config['footerInfo'];?> </div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -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>
|
||||
|
After Width: | Height: | Size: 129 B |
|
After Width: | Height: | Size: 666 B |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 460 B |
|
After Width: | Height: | Size: 711 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 875 B |
|
After Width: | Height: | Size: 723 B |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 494 B |