Files

115 lines
5.2 KiB
PHP

<?php
require_once 'functions.php';
$action = $_GET['action'] ?? 'login';
$message = null;
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$action = $_POST['action'] ?? 'login';
if ($action === 'register') {
$username = trim($_POST['username']);
$email = trim($_POST['email']);
$password = $_POST['password'];
$confirmPassword = $_POST['confirm_password'];
$inviteCode = trim($_POST['invite_code'] ?? '');
if ($password !== $confirmPassword) {
$message = ['success' => 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();
?>
<!DOCTYPE html>
<html lang="zh-CN" data-theme="<?php echo $currentTheme; ?>">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo $action === 'login' ? '登录' : '注册'; ?> - <?php echo SITE_NAME; ?></title>
<link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.0/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container auth-container">
<div class="auth-card">
<h2><i class="fas fa-<?php echo $action === 'login' ? 'sign-in-alt' : 'user-plus'; ?>"></i>
<?php echo $action === 'login' ? '登录' : '注册'; ?>
</h2>
<?php if ($message): ?>
<div class="alert alert-<?php echo $message['success'] ? 'success' : 'error'; ?>">
<i class="fas <?php echo $message['success'] ? 'fa-check-circle' : 'fa-exclamation-circle'; ?>"></i>
<?php echo htmlspecialchars($message['message']); ?>
</div>
<?php endif; ?>
<?php if ($action === 'login'): ?>
<form method="POST">
<input type="hidden" name="action" value="login">
<div class="form-group">
<label><i class="fas fa-user"></i> 账号</label>
<input type="text" name="username" placeholder="请输入用户名或邮箱..." required>
</div>
<div class="form-group">
<label><i class="fas fa-lock"></i> 密码</label>
<input type="password" name="password" placeholder="请输入密码..." required>
</div>
<button type="submit" class="btn btn-primary" style="width:100%;justify-content:center;">
<i class="fas fa-sign-in-alt"></i> 登录
</button>
</form>
<div class="auth-switch">
还没有账号?<a href="?action=register">立即注册</a>
</div>
<?php else: ?>
<form method="POST">
<input type="hidden" name="action" value="register">
<div class="form-group">
<label><i class="fas fa-user"></i> 用户名</label>
<input type="text" name="username" placeholder="请输入用户名..." required minlength="3" maxlength="30">
</div>
<div class="form-group">
<label><i class="fas fa-envelope"></i> 邮箱</label>
<input type="email" name="email" placeholder="请输入邮箱地址..." required>
</div>
<div class="form-group">
<label><i class="fas fa-lock"></i> 密码</label>
<input type="password" name="password" placeholder="请输入至少 6 位数的密码..." required minlength="6">
</div>
<div class="form-group">
<label><i class="fas fa-lock"></i> 确认密码</label>
<input type="password" name="confirm_password" placeholder="请再次输入密码" required minlength="6">
</div>
<div class="form-group">
<label><i class="fas fa-gift"></i> 邀请码(选填)</label>
<input type="text" name="invite_code" placeholder="输入邀请码可获得额外积分...">
<div class="invite-hint"><i class="fas fa-info-circle"></i> 使用邀请码注册可让邀请人获得 <?php echo INVITE_CREDIT; ?> 积分</div>
</div>
<button type="submit" class="btn btn-primary" style="width:100%;justify-content:center;">
<i class="fas fa-user-plus"></i> 注册
</button>
</form>
<div class="auth-switch">
已有账号?<a href="?action=login">立即登录</a>
</div>
<?php endif; ?>
</div>
</div>
</body>
</html>