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

Diff of /fenglin/bbs/update_profile_service.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.1 by sysadm, Mon Mar 31 14:15:24 2025 UTC Revision 1.4 by sysadm, Tue Apr 1 12:18:40 2025 UTC
# Line 14  Line 14 
14          $realname = (isset($data["realname"]) ? trim($data["realname"]) : "");          $realname = (isset($data["realname"]) ? trim($data["realname"]) : "");
15          $gender = (isset($data["gender"]) ? $data["gender"] : "");          $gender = (isset($data["gender"]) ? $data["gender"] : "");
16          $gender_public = (isset($data["gender_public"]) && $data["gender_public"] == "1" ? 1 : 0);          $gender_public = (isset($data["gender_public"]) && $data["gender_public"] == "1" ? 1 : 0);
17            $email = (isset($data["email"]) ? $data["email"] : "");
18          $year = (isset($data["year"]) ? intval($data["year"]) : 0);          $year = (isset($data["year"]) ? intval($data["year"]) : 0);
19          $month = (isset($data["month"]) ? intval($data["month"]) : 0);          $month = (isset($data["month"]) ? intval($data["month"]) : 0);
20          $day = (isset($data["day"]) ? intval($data["day"]) : 0);          $day = (isset($data["day"]) ? intval($data["day"]) : 0);
# Line 48  Line 49 
49                  ));                  ));
50          }          }
51    
52            if (!preg_match("/^[A-Za-z0-9_.-]+@([A-Za-z0-9-]+[.])+[A-Za-z0-9-]+$/", $email))
53            {
54                    $result_set["return"]["code"] = -1;
55                    array_push($result_set["return"]["errorFields"], array(
56                            "id" => "email",
57                            "errMsg" => "不符合格式要求",
58                    ));
59            }
60    
61          if (!checkdate($month, $day, $year))          if (!checkdate($month, $day, $year))
62          {          {
63                  $result_set["return"]["code"] = -1;                  $result_set["return"]["code"] = -1;
# Line 80  Line 90 
90                  exit(json_encode($result_set));                  exit(json_encode($result_set));
91          }          }
92    
93            // Secure SQL statement
94            $realname = mysqli_real_escape_string($db_conn, $realname);
95            
96          // Begin transaction          // Begin transaction
97          $rs = mysqli_query($db_conn, "SET autocommit=0");          $rs = mysqli_query($db_conn, "SET autocommit=0");
98          if ($rs == false)          if ($rs == false)
# Line 115  Line 128 
128    
129          if($row = mysqli_fetch_array($rs))          if($row = mysqli_fetch_array($rs))
130          {          {
131                  $email = $row["email"];                  $old_email = $row["email"];
132          }          }
133          else          else
134          {          {
# Line 128  Line 141 
141    
142          mysqli_free_result($rs);          mysqli_free_result($rs);
143    
144          $sql = "UPDATE user_reginfo SET name = '" . mysqli_real_escape_string($db_conn, $realname) .          // Update email
145                          "', birthday = '$year-$month-$day', signup_ip='" . client_addr() .          if ($old_email != $email)
146            {
147                    $sql = "SELECT UID FROM user_pubinfo WHERE email = '$email'";
148    
149                    $rs = mysqli_query($db_conn, $sql);
150                    if ($rs == false)
151                    {
152                            $result_set["return"]["code"] = -2;
153                            $result_set["return"]["message"] = "Query user email error: " . mysqli_error($db_conn);
154    
155                            mysqli_close($db_conn);
156                            exit(json_encode($result_set));
157                    }
158    
159                    if (mysqli_num_rows($rs) >= $BBS_max_user_per_email)
160                    {
161                            $result_set["return"]["code"] = -1;
162                            array_push($result_set["return"]["errorFields"], array(
163                                    "id" => "email",
164                                    "errMsg" => "该邮箱的使用次数已超过限制",
165                            ));
166    
167                            mysqli_close($db_conn);
168                            exit(json_encode($result_set));
169                    }
170                    mysqli_free_result($rs);
171    
172                    // Generate verify code
173                    $verify_code = gen_passwd(10);
174    
175                    $sql = "INSERT INTO user_modify_email_verify (UID, email, verify_code, dt, ip) VALUES(" .
176                                    $_SESSION["BBS_uid"] . ", '$email', '$verify_code', NOW(), '" . client_addr() . "')";
177    
178                    $rs = mysqli_query($db_conn, $sql);
179                    if ($rs == false)
180                    {
181                            $result_set["return"]["code"] = -2;
182                            $result_set["return"]["message"] = "Update email error: " . mysqli_error($db_conn);
183    
184                            mysqli_close($db_conn);
185                            exit(json_encode($result_set));
186                    }
187    
188                    //Send mail
189                    $from = "";
190                    $fromname = $BBS_name;
191                    $to = $email;
192                    $toname = $_SESSION["BBS_username"];
193                    $subject = $BBS_name . "修改邮件地址确认";
194                    $body = $_SESSION["BBS_username"] . ":\n    您好!\n" .
195                                    "    请访问以下链接确认更改注册邮件地址:\n" .
196                                    "https://$BBS_host_name/bbs/modify_email_verify.php?code=$verify_code\n\n" .
197                                    "    感谢您的大力支持!\n\n" .
198                                    $BBS_name . "\n" . date("Y年m月d日") . "\n";
199    
200                    $ret = send_mail($from, $fromname, $to, $toname, $subject, $body, $db_conn);
201                    if ($ret == false)
202                    {
203                            $result_set["return"]["code"] = -2;
204                            $result_set["return"]["message"] = "Add email error: " . mysqli_error($db_conn);
205    
206                            mysqli_close($db_conn);
207                            exit(json_encode($result_set));
208                    }
209            }
210    
211            $sql = "UPDATE user_reginfo SET name = '$realname',
212                            birthday = '$year-$month-$day', signup_ip='" . client_addr() .
213                          "' WHERE UID = " . $_SESSION["BBS_uid"];                          "' WHERE UID = " . $_SESSION["BBS_uid"];
214    
215          $rs = mysqli_query($db_conn, $sql);          $rs = mysqli_query($db_conn, $sql);
# Line 171  Line 251 
251          //Send mail          //Send mail
252          $from = "";          $from = "";
253          $fromname = $BBS_name;          $fromname = $BBS_name;
254          $to = $email;          $to = $old_email;
255          $toname = $_SESSION["BBS_username"];          $toname = $_SESSION["BBS_username"];
256          $subject = $BBS_name . "用户资料更改通知";          $subject = $BBS_name . "用户资料更改通知";
257          $body = $_SESSION["BBS_username"] . ":\n    您好!\n".          $body = $_SESSION["BBS_username"] . ":\n    您好!\n" .
258                          "    您在本站的注册资料已经于" . date("Y年m月d日 H:i:s") . "更改。\n".                          "    您在本站的注册资料已经于" . date("Y年m月d日 H:i:s") . "更改。\n" .
259                          "    为了您的个人资料的安全,如果此情况与事实不符,请与我们联系。\n\n".                          "    为了您的个人资料的安全,如果此情况与事实不符,请立即与我们联系。\n\n" .
260                          $BBS_name . "\n" . date("Y年m月d日") . "\n";                          $BBS_name . "\n" . date("Y年m月d日") . "\n";
261    
262          $ret = send_mail($from, $fromname, $to, $toname, $subject, $body, $db_conn);          $ret = send_mail($from, $fromname, $to, $toname, $subject, $body, $db_conn);


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

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