Browse Source

优化邮箱修改功能

tags/6.2.5
tianya 1 year ago
parent
commit
f70ccc4e1e
4 changed files with 85 additions and 13 deletions
  1. +14
    -0
      src/system/common.func.php
  2. +38
    -1
      src/user/api.php
  3. +9
    -6
      src/user/edit_baseinfo.php
  4. +24
    -6
      src/user/templets/edit_baseinfo.htm

+ 14
- 0
src/system/common.func.php View File

@@ -665,6 +665,20 @@ function AddFilter($channelid, $type=1, $fieldsnamef=array(), $defaulttid=0, $to
}
echo $dede_addonfields;
}
/**
* HideEmail 隐藏邮箱
*
* @param mixed $email
* @return string
*/
function HideEmail($email)
{
$em = explode("@",$email);
$name = implode('@', array_slice($em, 0, count($em)-1));
$len = floor(strlen($name)/2);

return substr($name,0, $len) . str_repeat('*', $len) . "@" . end($em);
}
//自定义函数接口
if (file_exists(DEDEINC.'/extend.func.php')) {
require_once(DEDEINC.'/extend.func.php');


+ 38
- 1
src/user/api.php View File

@@ -21,7 +21,44 @@ if ($action === 'is_need_check_code') {
),
));
exit;
} else {
} else if ($action === 'get_old_email') {
$oldpwd = isset($oldpwd)? $oldpwd : '';
if (empty($oldpwd)) {
echo json_encode(array(
"code" => -1,
"msg" => "旧密码不能为空",
"data" => null,
));
exit;
}
$row = $dsql->GetOne("SELECT * FROM `#@__member` WHERE mid='".$cfg_ml->M_ID."'");
if (function_exists('password_hash') && !empty($row['pwd_new'])) {
if (!is_array($row) || !password_verify($oldpwd, $row['pwd_new'])) {
echo json_encode(array(
"code" => -1,
"msg" => "旧密码校验错误",
"data" => null,
));
exit;
}
} else {
if (!is_array($row) || $row['pwd'] != md5($oldpwd)) {
echo json_encode(array(
"code" => -1,
"msg" => "旧密码校验错误",
"data" => null,
));
exit;
}
}
echo json_encode(array(
"code" => 0,
"msg" => "",
"data" => array(
"email" => $row['email'],
),
));
} else {
$format = isset($format) ? "json" : "";
if (!$cfg_ml->IsLogin()) {
if ($format === 'json') {


+ 9
- 6
src/user/edit_baseinfo.php View File

@@ -63,14 +63,17 @@ if ($dopost == 'save') {
exit();
}
//修改邮箱
if ($email != $row['email']) {
if (!CheckEmail($email)) {
ShowMsg('邮箱格式不正确', '-1');
exit();
} else {
$addupquery .= ",email='$email'";
if (!empty($email)) {
if ($email != $row['email']) {
if (!CheckEmail($email)) {
ShowMsg('邮箱格式不正确', '-1');
exit();
} else {
$addupquery .= ",email='$email'";
}
}
}
//修改安全问题
if ($newsafequestion != 0 && $newsafeanswer != '') {
if (strlen($newsafeanswer) > 30) {


+ 24
- 6
src/user/templets/edit_baseinfo.htm View File

@@ -30,11 +30,6 @@
ShowMsg("请您填写昵称");
return false;
}
if (document.form2.vdcode.value == "") {
document.form2.vdcode.focus();
ShowMsg("请您填写验证码");
return false;
}
}
</script>
</head>
@@ -101,7 +96,10 @@
</div>
<div class="form-group row">
<label for="iptEmail" class="col-sm-3 col-form-label">邮箱</label>
<div class="col-sm-9"><input type="email" name="email" id="iptEmail" class="form-control" placeholder="每个邮箱只能注册一个帐号,修改邮箱必须填写正确安全问题答案"></div>
<div class="col-sm-9">
<span id="spEmail"><?php echo HideEmail($row['email']);?> <span class="btn btn-success btn-sm" id="btnChangeEmail">修改邮箱</span></span>
<span id="iptEmail"></span>
</div>
</div>
<div class="form-group row">
<label for="iptEmail" class="col-sm-3 col-form-label">性别</label>
@@ -118,5 +116,25 @@
</div>
</div>
<?php pasterTempletDiy('foot.htm');?>
<script>
$(document).ready(function () {
$("#btnChangeEmail").click(function(){
if ($("#iptOldpwd").val() === "") {
ShowMsg("请您填写旧密码");
return false;
}
$.post("<?php echo $cfg_cmsurl;?>/user/api.php?action=get_old_email",{oldpwd:$("#iptOldpwd").val()},function(result) {
if (result.code === 0) {
console.log(result);
$("#spEmail").hide();
$("#iptEmail").html(`<input value="${result.data.email}" type="email" name="email" id="iptEmail" class="form-control">`);
$("#iptEmail").show();
} else {
ShowMsg(result.msg);
}
});
})
});
</script>
</body>
</html>

Loading…
Cancel
Save