2023-05-13 00:24:26 +08:00
< ? php
/*
* Copyright © 2016 - 2023 筱锋xiao_lfeng . All Rights Reserved .
* 开发开源遵循 MIT 许可,若需商用请联系开发者
* https :// www . x - lf . com /
*/
/**
2023-05-26 23:55:35 +08:00
* 此页面为博客审核页面
* 用户发起博客友链提交后,在此页面进行审核
* < p >
* 审核由博主进行审核,该页面为提交内容以及表单处理,处理结果存入数据库并返回邮件给用户
*
* @ author 筱锋xiao_lfeng
* @ since v1 . 0.0 - Alpha
* @ version v1 . 0.0 - Beta
2023-05-13 00:24:26 +08:00
* @ var array $Json_Data 最终数据编译输出
* @ var array $Array_ConfigData 配置文件
*/
// 引入配置
include dirname ( __FILE__ , 6 ) . " /Modules/API/header.php " ;
require dirname ( __FILE__ , 6 ) . " /class/Sql.php " ;
require dirname ( __FILE__ , 6 ) . " /class/Normal.php " ;
// 数据获取类型
$PostData = file_get_contents ( 'php://input' );
$PostData = json_decode ( $PostData , true );
// 逻辑构建
if ( $Array_ConfigData [ 'Session' ] == $_SERVER [ 'SESSION' ]) {
// 检查用户
if ( empty ( $PostData [ 'user' ]) && preg_match ( '/^[0-9]+$/' , $PostData [ 'user' ])) {
// 检查用户是否在数据库内且为管理员
$AResult_User = Sql :: SELECT ( " SELECT * FROM `index`.xf_user WHERE `uid`=' { $PostData [ 'user' ] } ' " );
if ( $AResult_User == 'Success' ) {
if ( $AResult_User [ 'data' ][ 0 ][ 'permission' ] == 1 ) {
// 审批是否通过(审批不通过直接删除,而非修改退回),检查数据是否存在
$AResult_Blog = Sql :: SELECT ( " SELECT * FROM `index`.xf_blog_link WHERE `id`=' { $PostData [ 'blog_id' ] } ' " );
if ( $AResult_Blog [ 'output' ] == 'Success' ) {
if ( $PostData [ 'check' ]) {
// 检查数据
if ( ! DataCheck ()) {
// 数据检查通过,上传数据并通过位置
if ( preg_match ( '/^[0-9]{1,4}/' , $PostData [ 'blog_location' ])) {
// 修改数据
if ( Sql :: UPDATE ( " UPDATE `index`.xf_blog_link SET `owner_email`=' { $PostData [ 'user_email' ] } ',`name`=' { $PostData [ 'blog_name' ] } ',`url`=' { $PostData [ 'blog_url' ] } ',`introduce`=' { $PostData [ 'blog_introduce' ] } ',`icon`=' { $PostData [ 'blog_icon' ] } ',`rss_judge`=' { $PostData [ 'blog_rss_judge' ] } ',`rss`=' { $PostData [ 'blog_rss' ] } ',`serverhost`=' { $PostData [ 'blog_host' ] } ',`adv`=' { $PostData [ 'blog_adv_judge' ] } ',`blog_ssl`=' { $PostData [ 'blog_ssl_judge' ] } ',`location`=' { $PostData [ 'blog_location' ] } ',`sel_color`= { $PostData [ 'blog_color' ] } WHERE `id`=' { $PostData [ 'blog_id' ] } ' " )) {
Normal :: Output ( 200 );
} else Normal :: Output ( 302 );
} else Normal :: Output ( 410 ); // 添加位置错误
}
} else {
// 删除数据
if ( Sql :: DELETE ( " DELETE FROM `index`.xf_blog_link WHERE `id`=' { $PostData [ 'blog_id' ] } ' " ))
Normal :: Output ( 200 );
else Normal :: Output ( 303 , null , " Blog " ); // 数据库删除失败
}
} else Normal :: Output ( 301 , null , " Blog " ); // 数据库查询失败
} else Normal :: Output ( 701 ); // 管理员权限拒绝
} else if ( $AResult_User == 'EmptyResult' ) {
Normal :: Output ( 601 ); // 没有这个用户
} else Normal :: Output ( 301 , null , " User " ); // 数据库查询失败
} else Normal :: Output ( 402 ); // 用户格式不正确
} else Normal :: Output ( 100 ); // 通讯密钥错误
/**
2023-05-26 23:55:35 +08:00
* 正则表达式检查用户信息
*
2023-05-13 00:24:26 +08:00
* @ return false | void 返回结果为错误Json, 否则返回false表示检查完成
2023-05-26 23:55:35 +08:00
* @ author 筱锋xiao_lfeng
* @ since v1 . 0.0 - Alpha
2023-05-13 00:24:26 +08:00
*/
function DataCheck ()
{
global $PostData ;
if ( preg_match ( '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/' , $PostData [ 'user_email' ])) {
if ( preg_match ( '/^[一-龥0-9A-Za-z_\']+$/' , $PostData [ 'blog_name' ])) {
if ( preg_match ( '/^[一-龥0-9A-Za-z_\']+$/' , $PostData [ 'blog_introduce' ])) {
if ( preg_match ( '/[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?/' , $PostData [ 'blog_url' ])) {
if ( preg_match ( '/^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$/' , $PostData [ 'blog_icon' ])) {
if (( string ) $PostData [ 'blog_ssl_judge' ] == " true " || ( string ) $PostData [ 'blog_ssl_judge' ] == " false " ) {
if (( string ) $PostData [ 'blog_adv_judge' ] == " true " || ( string ) $PostData [ 'blog_adv_judge' ] == " false " ) {
if (( string ) $PostData [ 'blog_rss_judge' ] == " true " || ( string ) $PostData [ 'blog_rss_judge' ] == " false " ) {
if ( empty ( $PostData [ 'blog_rss' ]) || preg_match ( '/^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$/' , $PostData [ 'blog_rss' ])) {
if ( preg_match ( '/^[一-龥0-9A-Za-z_\']+$/' , $PostData [ 'blog_host' ])) {
if ( empty ( $PostData [ 'blog_color' ]) || preg_match ( '/^[0-9]+$/' , $PostData [ 'blog_color' ])) {
return false ;
} else Normal :: Output ( 410 );
} else Normal :: Output ( 409 ); // 地址格式错误( RSS地址)
} else Normal :: Output ( 407 , null , 'blog_rss' ); // 地址格式错误( RSS地址)
} else Normal :: Output ( 408 , null , 'blog_rss_judge' ); // 不符合布尔值参数
} else Normal :: Output ( 408 , null , 'blog_adv_judge' ); // 不符合布尔值参数
} else Normal :: Output ( 408 , null , 'blog_ssl_judge' ); // 不符合布尔值参数
} else Normal :: Output ( 407 , null , 'blog_icon' ); // 地址格式错误(图标地址)
} else Normal :: Output ( 407 , null , 'blog_url' ); // 地址格式错误
} else Normal :: Output ( 406 ); // 博客描述格式不符合
} else Normal :: Output ( 405 ); // 博客名字格式不符合
} else Normal :: Output ( 401 ); // 邮箱是否合法
}