diff --git a/admin.php b/admin.php new file mode 100644 index 0000000..1459b42 --- /dev/null +++ b/admin.php @@ -0,0 +1,197 @@ + true, 'message' => '积分添加成功。']; + } else { + $result = deductCredits($targetUser, $amount); + $message = $result; + } + break; + + case 'delete_user': + $userId = intval($_POST['user_id']); + if ($userId == getCurrentUserId()) { + $message = ['success' => false, 'message' => '不能删除自己的账号。']; + } else { + $stmt = $pdo->prepare("DELETE FROM users WHERE id = ?"); + $stmt->execute([$userId]); + $message = ['success' => true, 'message' => '用户已删除。']; + } + break; + + case 'toggle_admin': + $userId = intval($_POST['user_id']); + $isAdmin = intval($_POST['is_admin']); + $newStatus = $isAdmin ? 0 : 1; + $stmt = $pdo->prepare("UPDATE users SET is_admin = ? WHERE id = ?"); + $stmt->execute([$newStatus, $userId]); + $message = ['success' => true, 'message' => '成功更新管理员的状态。']; + break; + } +} + +// 获取所有用户 +$users = $pdo->query("SELECT * FROM users ORDER BY created_at DESC")->fetchAll(); + +$currentTheme = getTheme(); +?> + + + + + + 后台管理 - <?php echo SITE_NAME; ?> + + + + +
+
+
+

管理面板

+
+ + 返回面板 + +
+ + +
+
+ + +
+
+
+
+ + +
+ + +
+ + + +
+
+
+
总用户
+
+
+
+ $u['is_verified']); + echo count($verified); + ?> +
+
已验证
+
+
+
+ $u['is_admin']); + echo count($admins); + ?> +
+
管理员
+
+
+ + +
+
+

用户管理

+ +
+
+ +
+ +
+ +
+ + + + + +
+ + +
+ + + + +
+ + + +
+ + + +
+ +
+
+ +
+
+
+ + \ No newline at end of file diff --git a/auth.php b/auth.php new file mode 100644 index 0000000..7b0797d --- /dev/null +++ b/auth.php @@ -0,0 +1,115 @@ + false, 'message' => '两次密码输入不一致。']; + } elseif (strlen($password) < 6) { + $message = ['success' => false, 'message' => '密码长度至少 6 位。']; + } else { + $message = registerUser($username, $email, $password, $inviteCode); + } + } elseif ($action === 'login') { + $username = trim($_POST['username']); + $password = $_POST['password']; + $message = loginUser($username, $password); + + if ($message['success']) { + header('Location: dashboard.php'); + exit; + } + } +} + +$currentTheme = getTheme(); +?> + + + + + + <?php echo $action === 'login' ? '登录' : '注册'; ?> - <?php echo SITE_NAME; ?> + + + + +
+
+

+ +

+ + +
+ + +
+ + + +
+ +
+ + +
+
+ + +
+ +
+
+ 还没有账号?立即注册 +
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
使用邀请码注册可让邀请人获得 积分
+
+ +
+
+ 已有账号?立即登录 +
+ +
+
+ + \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..2f44db3 --- /dev/null +++ b/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "phpmailer/phpmailer": "*" + } +} diff --git a/config.php b/config.php new file mode 100644 index 0000000..d7d6dbb --- /dev/null +++ b/config.php @@ -0,0 +1,72 @@ + [ + 'zone_id' => '', + 'api_token' => '' + ], + 'Domain2' => [ + 'zone_id' => '', + 'api_token' => '' + ], + 'Domain3' => [ + 'zone_id' => '', + 'api_token' => '' + ] +]; + +define('SMTP_HOST', ''); +define('SMTP_PORT', 587); +define('SMTP_SECURE', 'tls'); +define('SMTP_USERNAME', ''); +define('SMTP_PASSWORD', ''); +define('SMTP_FROM_EMAIL', ''); +define('SMTP_FROM_NAME', ''); +define('SITE_URL', ''); +define('SITE_NAME', ''); +define('CREDIT_PER_DOMAIN', 5); +define('MAX_DOMAINS_PER_USER', 10); +define('SIGN_IN_CREDIT', 2); +define('INVITE_CREDIT', 10); + +session_start(); + +function getDB() { + static $pdo = null; + if ($pdo === null) { + try { + $dsn = "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=" . DB_CHARSET; + $pdo = new PDO($dsn, DB_USER, DB_PASS, [ + PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, + PDO::ATTR_EMULATE_PREPARES => false + ]); + } catch (PDOException $e) { + die("数据库连接失败: " . $e->getMessage()); + } + } + return $pdo; +} + +function initConfig() { + $pdo = getDB(); + try { + $stmt = $pdo->query("SELECT setting_key, setting_value FROM settings"); + while ($row = $stmt->fetch()) { + $key = $row['setting_key']; + $value = $row['setting_value']; + if (!defined(strtoupper($key))) { + define(strtoupper($key), $value); + } + } + } catch (PDOException $e) { + } +} + +initConfig(); +?> \ No newline at end of file diff --git a/dashboard.php b/dashboard.php new file mode 100644 index 0000000..2f6ea5d --- /dev/null +++ b/dashboard.php @@ -0,0 +1,413 @@ + false, 'message' => '请填写完整的表单。']; + } else { + $message = addDomain($userId, $mainDomain, $subdomain, $type, $value); + if ($message['success']) { + header('Location: dashboard.php?success=1'); + exit; + } + } + break; + + case 'delete_domain': + $domainId = intval($_POST['domain_id']); + $message = deleteDomain($userId, $domainId); + if ($message['success']) { + header('Location: dashboard.php?deleted=1'); + exit; + } + break; + + case 'sign_in': + $message = signIn($userId); + if ($message['success']) { + header('Location: dashboard.php?signed=1'); + exit; + } + break; + + case 'toggle_theme': + toggleTheme(); + header('Location: dashboard.php'); + exit; + + case 'logout': + session_destroy(); + header('Location: auth.php'); + exit; + } +} +$userInfo = getUserInfo($userId); +$domains = getUserDomains($userId); +$domainCount = count($domains); +$credits = $userInfo['credits']; +$canAdd = canAddDomain($userId); +$signInToday = hasSignedInToday($userId); +$signInStats = getSignInStats($userId); +$inviteStats = getInviteStats($userId); +$currentTheme = getTheme(); +?> + + + + + + 用户面板 - <?php echo SITE_NAME; ?> + + + + +
+
+
+

+
+ +
+ + +
+
+ + +
+
+
+
+ + + +
+ + +
+ + + +
+ + +
+ + + +
+
+

👋 欢迎回来,

+

+

+ “:D 获取中...” +

+ 您在 注册 + + + 管理员 + + +

+
+ +
+ + +
+
+
+
当前积分
+
+
+
/
+
域名数量
+
+ +
+
+
邀请人数
+
+
+ + +
+
+ 你的邀请码 + + + 已邀请 人 + (获得 积分) + +
+ +
+ + +
+
+

添加新域名

+ + 消耗 积分 + +
+
+ +
+ + +
+ + +
+ + +
+
+ + +
+ +
+ +
+ > +
+
+ + 3 - 20 个字符,只能包含小写字母、数字和连字符。不能以连字符开头或结尾。 +
+
+
+ +
+
+ + +
+ +
+ + > +
+ + 请选择记录类型查看格式说明 +
+
+
+ + +
+
+
+ + +
+
+

我的域名

+ +
+
+ +
+ +

还没有添加...

+

+ 添加域名需要 积分 +

+
+ +
+ +
+
+ + + . + + + + + + +
+
+ + + +
+
+ +
+ +
+
+
+ + + \ No newline at end of file