/[LeafOK_CVS]/fenglin/bbs/reg_user.php
ViewVC logotype

Contents of /fenglin/bbs/reg_user.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (show annotations)
Wed Apr 2 02:36:51 2025 UTC (11 months, 2 weeks ago) by sysadm
Branch: MAIN
Changes since 1.2: +28 -12 lines
Refine JS code

1 <?
2 require_once "../lib/common.inc.php";
3 require_once "../lib/lml.inc.php";
4 require_once "./session_init.inc.php";
5 ?>
6 <html>
7 <head>
8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
9 <title>新用户注册</title>
10 <link rel="stylesheet" href="css/default.css" type="text/css">
11 </head>
12 <script src="../js/polyfill.min.js"></script>
13 <script src="../js/axios.min.js"></script>
14 <script type="text/javascript">
15 function vn_refresh(img)
16 {
17 img.src = img.src;
18 return false;
19 }
20
21 function refresh_err_msg(errorFieldMap)
22 {
23 document.getElementsByName("err_msg").forEach(element => {
24 if (errorFieldMap.has(element.id))
25 {
26 element.innerHTML = errorFieldMap.get(element.id);
27 }
28 else
29 {
30 element.innerHTML = "";
31 }
32 });
33 }
34
35 function reg_sub(f)
36 {
37 instance.post('reg_user_service.php', {
38 username: f.username.value,
39 nickname: f.nickname.value,
40 realname: f.realname.value,
41 gender: f.gender.value,
42 gender_public: (f.gender_public.checked ? "1" : "0"),
43 email: f.email.value,
44 year: f.year.value,
45 month: f.month.value,
46 day: f.day.value,
47 qq: f.qq.value,
48 agreement: (f.agreement.checked ? "1" : "0"),
49 vn_str: f.vn_str.value,
50 })
51 .then(function (response) {
52 var ret = response.data;
53 var errorFieldMap = new Map();
54 switch (ret.return.code)
55 {
56 case 0: // OK
57 errorFieldMap.set("err_msg_prompt", "注册成功,请查收邮件");
58 refresh_err_msg(errorFieldMap);
59 break;
60 case -1: // Input validation failed
61 ret.return.errorFields.forEach(field => {
62 errorFieldMap.set("err_msg_" + field.id, field.errMsg + "<br />");
63 });
64 refresh_err_msg(errorFieldMap);
65 break;
66 case -2: // Internal error
67 console.log(ret.return.message);
68 errorFieldMap.set("err_msg_prompt", "内部错误");
69 refresh_err_msg(errorFieldMap);
70 break;
71 default:
72 console.log(ret.return.code);
73 break;
74 }
75 })
76 .catch(function (error) {
77 console.log(error);
78 });
79
80 return false;
81 }
82
83 const instance = axios.create({
84 withCredentials: true,
85 timeout: 3000,
86 baseURL: document.location.protocol + '//' + document.location.hostname + (document.location.port=='' ? '' : (':' + document.location.port)) + '/bbs/',
87 });
88
89 window.addEventListener("load", () => {
90 var f = document.getElementById("reg_form");
91 f.addEventListener("submit", (e) => {
92 e.preventDefault();
93 reg_sub(f);
94 });
95 });
96
97 </script>
98 <body>
99 <center>
100 <form method="post" id="reg_form" name="reg_form" action="#">
101 <p style="font-weight: bold; font-size: 16px; color: red; font-family: 楷体">新用户注册</p>
102 <p><span id="err_msg_prompt" name="err_msg" style="color: red"></span></p>
103 <table border="1" cellpadding="10" cellspacing="0" width="700" bgcolor="#ffdead">
104 <tr>
105 <td width="26%" align="right">
106 用户名
107 </td>
108 <td width="74%">
109 <span id="err_msg_username" name="err_msg" style="color: red;"></span><input id="username" name="username" value="">
110 <font color="red">*</font>
111 5-12位英文子母、数字的组合,必须以字母开头,不可更改
112 </td>
113 </tr>
114 <tr>
115 <td align="right">
116 昵称
117 </td>
118 <td>
119 <span id="err_msg_nickname" name="err_msg" style="color: red;"></span><input id="nickname" name="nickname" value="">
120 <span style="color: red">*</span>
121 长度不超过10个全角字符,不能包含空格
122 </td>
123 </tr>
124 <tr>
125 <td align="right">
126 姓名
127 </td>
128 <td>
129 <span id="err_msg_realname" name="err_msg" style="color: red;"></span><input id="realname" name="realname" value="">
130 <span style="color: red">*</span>
131 长度不超过5个全角字符
132 </td>
133 </tr>
134 <tr>
135 <td align="right">
136 性别
137 </td>
138 <td>
139 <span id="err_msg_gender" name="err_msg" style="color: red;"></span><input type="radio" id="gender_male" name="gender" value="M">男
140 <input type="radio" id="gender_female" name="gender" value="F">女
141 <span style="color: red">*</span>
142 <input type="checkbox" id="gender_public" name="gender_public" value="1" checked>公开
143 </td>
144 </tr>
145 <tr>
146 <td align="right">
147 邮件地址
148 </td>
149 <td>
150 <span id="err_msg_email" name="err_msg" style="color: red;"></span><input id="email" name="email" value="">
151 <span style="color: red">*</span>
152 请务必准确填写,否则无法激活账户<br>
153 </td>
154 </tr>
155 <tr>
156 <td align="right">
157 出生日期
158 </td>
159 <td>
160 <span id="err_msg_birthday" name="err_msg" style="color: red;"></span><select id="year" name="year" size="1">
161 <?
162 $year_current = intval(date("Y", time()));
163 $year_max = $year_current - 16; // Accept registrant of 16+ only
164 $year_min = $year_current - 80;
165 $year_selected = $year_current - 25;
166 for ($year = $year_min; $year <= $year_max; $year++)
167 {
168 ?>
169 <option value="<? echo $year; ?>" <? echo ($year == $year_selected ? "selected" : ""); ?>><? echo $year; ?></option>
170 <?
171 }
172 ?>
173
174 </select>年
175 <select id="month" name="month" size="1">
176 <?
177 $month_selected = 1;
178 for ($month = 1; $month <= 12; $month++)
179 {
180 ?>
181 <option value="<? echo $month; ?>" <? echo ($month == $month_selected ? "selected" : ""); ?>><? echo $month; ?></option>
182 <?
183 }
184 ?>
185 </select>月
186 <select id="day" name="day" size="1">
187 <?
188 $day_selected = 1;
189 for ($day = 1; $day <= 31; $day++)
190 {
191 ?>
192 <option value="<? echo $day; ?>" <? echo ($day == $day_selected ? "selected" : ""); ?>><? echo $day; ?></option>
193 <?
194 }
195 ?>
196 </select>日
197 <span style="color: red">*</span>
198 </td>
199 </tr>
200 <tr>
201 <td align="right">
202 QQ号码
203 </td>
204 <td>
205 <span id="err_msg_qq" name="err_msg" style="color: red;"></span><input id="qq" name="qq" size="20" value="">
206 </td>
207 </tr>
208 <tr>
209 <td colspan="2" align="center">
210 <span id="err_msg_agreement" name="err_msg" style="color: red;"></span><textarea rows="15" cols="80"><?
211 $buffer = file_get_contents("./doc/license/" . (new DateTime($BBS_license_dt))->format("Ymd") . ".txt");
212 echo (LML(htmlspecialchars($buffer, ENT_HTML401, 'UTF-8'), false, false, 1024));
213 ?></textarea>
214 <p>
215 <input type="checkbox" id="agreement" name="agreement" value="1">
216 我已仔细阅读并完全同意以上《用户许可协议》
217 </p>
218 </td>
219 </tr>
220 <tr>
221 <td align="right">
222 验证码
223 </td>
224 <td>
225 <span id="err_msg_vn_str" name="err_msg" style="color: red;"></span><input size=4 name="vn_str" value="">
226 <img id="vn_img" src="reg_vn_display.php" onclick="vn_refresh(this);">
227 <span style="color: red">*</span>
228 按图片内容填写,单击图片刷新
229 </td>
230 </tr>
231 </table>
232 <p>
233 <input type="submit" value="提交">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value="重填">
234 </p>
235 </form>
236 </center>
237 <?
238 include "./foot.inc.php";
239 ?>
240 </body>
241 </html>

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1