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

Annotation of /fenglin/bbs/reg_user.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (hide annotations)
Thu Apr 10 10:22:44 2025 UTC (11 months, 1 week ago) by sysadm
Branch: MAIN
Changes since 1.5: +1 -1 lines
Refine

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

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