仰望星辰工作室

better-staridc-MNBT

Z zfhsh first commit 2 天前
1<?php
2if (!defined('IN_CRONLITE')) { exit; }
3$page_title = $page_title ?? '注册';
4ob_start();
5?>
6<div class="ly-msg" id="msg"></div>
7
8<form class="layui-form ly-form" id="registerForm" autocomplete="on">
9 <h1>注册</h1>
10 <p style="color:#999;font-size:14px;margin:0 0 20px;">创建您的账户</p>
11
12 <div class="layui-form-item">
13 <label class="layui-form-label">用户名</label>
14 <div class="layui-input-block"><input type="text" id="username" name="username" required maxlength="32" autocomplete="username" placeholder="3~32 位字母/数字/下划线" class="layui-input"></div>
15 </div>
16 <div class="layui-form-item">
17 <label class="layui-form-label">密码</label>
18 <div class="layui-input-block"><input type="password" id="password" name="password" required autocomplete="new-password" placeholder="至少 6 个字符" class="layui-input"></div>
19 </div>
20 <div class="layui-form-item">
21 <label class="layui-form-label">确认密码</label>
22 <div class="layui-input-block"><input type="password" id="password2" name="password2" required autocomplete="new-password" placeholder="再次输入密码" class="layui-input"></div>
23 </div>
24 <div class="layui-form-item">
25 <label class="layui-form-label">邮箱</label>
26 <div class="layui-input-block"><input type="email" id="email" name="email" maxlength="128" autocomplete="email" placeholder="选填,用于找回密码" class="layui-input"></div>
27 </div>
28 <div class="layui-form-item">
29 <label class="layui-form-label">QQ</label>
30 <div class="layui-input-block"><input type="text" id="qq" name="qq" maxlength="12" placeholder="选填" class="layui-input"></div>
31 </div>
32 <div class="layui-form-item">
33 <div class="layui-input-block">
34 <button type="submit" class="layui-btn layui-btn-fluid" id="submitBtn">注册</button>
35 </div>
36 </div>
37 <div style="text-align:center;font-size:13px;color:#888;">
38 已有账号?<a href="<?= user_info_url('account/login') ?>" style="color:#009688;">立即登录</a>
39 </div>
40</form>
41
42<script>
43(function () {
44 var form = document.getElementById('registerForm');
45 var msg = document.getElementById('msg');
46 var btn = document.getElementById('submitBtn');
47 function showMsg(text, type) { msg.textContent = text; msg.className = 'ly-msg show ' + (type === 'success' ? 'ly-msg-success' : 'ly-msg-error'); }
48 form.addEventListener('submit', function (e) {
49 e.preventDefault(); btn.disabled = true; btn.textContent = '注册中...'; msg.className = 'ly-msg';
50 var body = new URLSearchParams();
51 body.append('username', document.getElementById('username').value);
52 body.append('password', document.getElementById('password').value);
53 body.append('password2', document.getElementById('password2').value);
54 body.append('email', document.getElementById('email').value);
55 body.append('qq', document.getElementById('qq').value);
56 fetch('<?= user_info_url('account/api/register') ?>', { method: 'POST', headers: {'Content-Type':'application/x-www-form-urlencoded'}, body: body.toString() })
57 .then(function (r) { return r.json(); })
58 .then(function (res) {
59 if (res.code === 'ok') { showMsg(res.message || '注册成功', 'success'); setTimeout(function(){window.location.href=res.redirect;},300); }
60 else { showMsg(res.code || '注册失败', 'error'); btn.disabled = false; btn.textContent = '注册'; }
61 })
62 .catch(function () { showMsg('网络错误,请重试', 'error'); btn.disabled = false; btn.textContent = '注册'; });
63 });
64})();
65</script>
66<?php
67$content = ob_get_clean();
68include __DIR__ . '/layout.php';