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

Contents of /fenglin/bbs/update_profile.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (show annotations)
Sat Apr 5 04:13:08 2025 UTC (11 months, 1 week ago) by sysadm
Branch: MAIN
Changes since 1.4: +1 -1 lines
Refine JS

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

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