/[LeafOK_CVS]/fenglin/bbs/themes/default/update_profile.view.php
ViewVC logotype

Contents of /fenglin/bbs/themes/default/update_profile.view.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.12 - (show annotations)
Tue Apr 29 03:37:38 2025 UTC (10 months, 2 weeks ago) by sysadm
Branch: MAIN
CVS Tags: HEAD
Changes since 1.11: +18 -12 lines
Refine

1 <?php
2 // Prevent load standalone
3 if (!isset($result_set))
4 {
5 exit();
6 }
7 ?>
8 <html>
9 <head>
10 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
11 <title>更改用户资料</title>
12 <link rel="stylesheet" href="<?= get_theme_file('css/default'); ?>" type="text/css">
13 <script src="../js/polyfill.min.js"></script>
14 <script src="../js/axios.min.js"></script>
15 <script type="text/javascript">
16 function refresh_err_msg(errorFieldMap)
17 {
18 document.getElementsByName("err_msg").forEach(element => {
19 element.innerHTML = (errorFieldMap.has(element.id) ? errorFieldMap.get(element.id) : "");
20 });
21 }
22
23 function update_profile(f)
24 {
25 instance.post('user_service_update_profile.php', {
26 nickname: f.nickname.value,
27 realname: f.realname.value,
28 gender: f.gender.value,
29 gender_public: (f.gender_public.checked ? "1" : "0"),
30 email: f.email.value,
31 year: f.year.value,
32 month: f.month.value,
33 day: f.day.value,
34 qq: f.qq.value,
35 })
36 .then(function (response) {
37 var ret = response.data;
38 var errorFieldMap = new Map();
39 switch (ret.return.code)
40 {
41 case 0: // OK
42 errorFieldMap.set("err_msg_prompt", "更新成功");
43 refresh_err_msg(errorFieldMap);
44 break;
45 case -1: // Input validation failed
46 ret.return.errorFields.forEach(field => {
47 errorFieldMap.set("err_msg_" + field.id, field.errMsg + "<br />");
48 });
49 refresh_err_msg(errorFieldMap);
50 break;
51 case -2: // Internal error
52 console.log(ret.return.message);
53 errorFieldMap.set("err_msg_prompt", "内部错误");
54 refresh_err_msg(errorFieldMap);
55 break;
56 default:
57 console.log(ret.return.code);
58 break;
59 }
60 })
61 .catch(function (error) {
62 console.log(error);
63 });
64
65 return false;
66 }
67
68 const instance = axios.create({
69 withCredentials: true,
70 timeout: 3000,
71 baseURL: document.location.protocol + '//' + document.location.hostname + (document.location.port=='' ? '' : (':' + document.location.port)) + '/bbs/',
72 });
73
74 window.addEventListener("load", () => {
75 var f = document.getElementById("profile_form");
76 f.addEventListener("submit", (e) => {
77 e.preventDefault();
78 update_profile(f);
79 });
80
81 var s = document.getElementById("select_nick");
82 s.addEventListener("change", (e) => {
83 n = document.getElementById("nickname");
84 n.value = s.options[s.selectedIndex].value;
85 });
86
87 });
88
89 </script>
90 </head>
91 <body>
92 <?php
93 include get_theme_file("view/user_center_header");
94 ?>
95 <center>
96 <p style="FONT-WEIGHT: bold; FONT-SIZE: 16px; COLOR: red; FONT-FAMILY: 楷体">更改用户资料</p>
97 <p><span id="err_msg_prompt" name="err_msg" style="color: red"></span></p>
98 <form method="post" id="profile_form" name="profile_form" action="#">
99 <table border="1" cellpadding="10" cellspacing="0" width="1050" bgcolor="#ffdead" id=TABLE1>
100 <tr>
101 <td width="25%" align="right">
102 密码
103 </td>
104 <td width="75%">
105 密码修改请<a href="user_reset_pass.php" target=_blank>点击此处</a>通过邮箱重置。
106 </td>
107 </tr>
108 <tr>
109 <td align="right">
110 昵称
111 </td>
112 <td>
113 <span id="err_msg_nickname" name="err_msg" style="color: red;"></span><input id="nickname" name="nickname" value="<?= htmlspecialchars($result_set["data"]["nickname"], ENT_HTML401, 'UTF-8'); ?>">
114 <span style="color: red">*</span>
115 <select name="select_nick" id="select_nick">
116 <option value="">----曾用昵称免费----</option>
117 <?php
118 foreach ($result_set["data"]["nicknames"] as $nickname)
119 {
120 echo <<<HTML
121 <option value="{$nickname}">{$nickname}</option>
122 HTML;
123 }
124 ?>
125 </select>
126 使用新昵称每次收取2个积分
127 </td>
128 </tr>
129 <tr>
130 <td align="right">
131 姓名
132 </td>
133 <td>
134 <span id="err_msg_realname" name="err_msg" style="color: red;"></span><input id="realname" name="realname" value="<?= htmlspecialchars($result_set["data"]["name"], ENT_HTML401, 'UTF-8'); ?>">
135 <span style="color: red">*</span>
136 长度不超过5个全角字符
137 </td>
138 </tr>
139 <tr>
140 <td align="right">
141 性别
142 </td>
143 <td>
144 <span id="err_msg_gender" name="err_msg" style="color: red;"></span><input type="radio" id="gender_male" name="gender" value="M" <?= ($result_set["data"]["gender"] == "M" ? "checked" : ""); ?>>男
145 <input type="radio" id="gender_female" name="gender" value="F" <?= ($result_set["data"]["gender"] == "F" ? "checked" : ""); ?>>女
146 <span style="color: red">*</span>
147 <input type="checkbox" id="gender_public" name="gender_public" value="1" <?= ($result_set["data"]["gender_pub"] ? "checked" : ""); ?>>公开
148 </td>
149 </tr>
150 <tr>
151 <td align="right">
152 邮件地址
153 </td>
154 <td>
155 <span id="err_msg_email" name="err_msg" style="color: red;"></span><input id="email" name="email" value="<?= $result_set["data"]["email"]; ?>">
156 <span style="color: red">*</span>
157 修改邮箱后,请按照确认邮件提示操作<br>
158 </td>
159 </tr>
160 <tr>
161 <td align="right">
162 出生日期
163 </td>
164 <td>
165 <span id="err_msg_birthday" name="err_msg" style="color: red;"></span><select id="year" name="year" size="1">
166 <?php
167 $birthday = (new DateTimeImmutable($result_set["data"]["birthday"]));
168
169 $year_current = intval(date("Y", time()));
170 $year_max = $year_current - 16; // Accept registrant of 16+ only
171 $year_min = $year_current - 80;
172 $year_selected = intval($birthday->format("Y"));
173 for ($year = $year_min; $year <= $year_max; $year++)
174 {
175 $option_year_selected = ($year == $year_selected ? "selected" : "");
176
177 echo <<<HTML
178 <option value="{$year}" {$option_year_selected}>{$year}</option>
179 HTML;
180 }
181 ?>
182
183 </select>年
184 <select id="month" name="month" size="1">
185 <?php
186 $month_selected = intval($birthday->format("m"));
187 for ($month = 1; $month <= 12; $month++)
188 {
189 $option_month_selected = ($month == $month_selected ? "selected" : "");
190
191 echo <<<HTML
192 <option value="{$month}" {$option_month_selected}>{$month}</option>
193 HTML;
194 }
195 ?>
196 </select>月
197 <select id="day" name="day" size="1">
198 <?php
199 $day_selected = intval($birthday->format("d"));
200 for ($day = 1; $day <= 31; $day++)
201 {
202 $option_day_selected = ($day == $day_selected ? "selected" : "");
203
204 echo <<<HTML
205 <option value="{$day}" {$option_day_selected}>{$day}</option>
206 HTML;
207 }
208 ?>
209 </select>日
210 <span style="color: red">*</span>
211 </td>
212 </tr>
213 <tr>
214 <td align="right">
215 QQ号码
216 </td>
217 <td>
218 <span id="err_msg_qq" name="err_msg" style="color: red;"></span><input id="qq" name="qq" size="20" value="<?= $result_set["data"]["qq"]; ?>">
219 </td>
220 </tr>
221 </table>
222 <p>
223 <input type="submit" value="提交">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
224 <input type="reset" value="重填">
225 </p>
226 </form>
227 </center>
228 </body>
229 </html>

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