| 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); |
| 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; |
| 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) |
| 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 |
{ |
{ |
| 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); |
| 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); |