/[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.1 - (hide annotations)
Mon Mar 31 14:11:49 2025 UTC (11 months, 2 weeks ago) by sysadm
Branch: MAIN
Move reguser.php to reg_user.php
Refact with AJAX support

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

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