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

Annotation of /fenglin/bbs/update_profile.php

Parent Directory Parent Directory | Revision Log Revision Log


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

1 sysadm 1.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 language="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 sysadm 1.4 function refresh_err_msg(errorFieldMap)
35 sysadm 1.1 {
36 sysadm 1.4 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 sysadm 1.1 });
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 sysadm 1.3 email: f.email.value,
55 sysadm 1.1 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 sysadm 1.4 var errorFieldMap = new Map();
63 sysadm 1.1 switch (ret.return.code)
64     {
65     case 0: // OK
66 sysadm 1.4 errorFieldMap.set("err_msg_prompt", "更新成功");
67     refresh_err_msg(errorFieldMap);
68 sysadm 1.1 break;
69     case -1: // Input validation failed
70     ret.return.errorFields.forEach(field => {
71 sysadm 1.4 errorFieldMap.set("err_msg_" + field.id, field.errMsg + "<br />");
72 sysadm 1.1 });
73 sysadm 1.4 refresh_err_msg(errorFieldMap);
74 sysadm 1.1 break;
75     case -2: // Internal error
76     console.log(ret.return.message);
77 sysadm 1.4 errorFieldMap.set("err_msg_prompt", "内部错误");
78     refresh_err_msg(errorFieldMap);
79 sysadm 1.1 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 sysadm 1.4 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 sysadm 1.1 </script>
107     </head>
108     <body>
109     <?
110     include "./member_service_guide.inc.php";
111     ?>
112     <center>
113 sysadm 1.4 <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 sysadm 1.1 <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 sysadm 1.3 <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 sysadm 1.1 </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