From 080b3e1f1d197a53a87e6462aacaee9098eab6f2 Mon Sep 17 00:00:00 2001 From: tianya <8445295+llgoer@user.noreply.gitee.com> Date: Sat, 30 Apr 2022 11:25:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E5=91=98=E4=B8=AD=E5=BF=83=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/member_toadmin.php | 35 ++++++++++++++++++++--------- src/admin/templets/member_main.htm | 3 +-- src/admin/templets/member_view.htm | 3 +-- src/user/ajax_loginsta.php | 2 +- src/user/edit_baseinfo.php | 36 +++++++++++++++++++++++------- src/user/reg_new.php | 12 +++++++--- src/user/resetpassword.php | 16 ++++++++----- 7 files changed, 75 insertions(+), 32 deletions(-) diff --git a/src/admin/member_toadmin.php b/src/admin/member_toadmin.php index 40fbe3dc..6dd6af89 100644 --- a/src/admin/member_toadmin.php +++ b/src/admin/member_toadmin.php @@ -32,17 +32,30 @@ if ($dopost == "toadmin") { $pwdm = ''; if ($pwd != '') { $inputpwd = ",pwd"; - $inputpwdv = ",'".substr(md5($pwd), 5, 20)."'"; - $pwdm = ",pwd='".md5($pwd)."'"; + if (function_exists('password_hash')) { + $inputpwd = ",pwd_new"; + $inputpwdv = ",'".password_hash($pwd, PASSWORD_BCRYPT)."'"; + $pwdm = ",pwd_new='".password_hash($pwd, PASSWORD_BCRYPT)."'"; + } else { + $inputpwdv = ",'".substr(md5($pwd), 5, 20)."'"; + $pwdm = ",pwd='".md5($pwd)."'"; + } } else { - $row = $dsql->GetOne("SELECT * FROM #@__member WHERE mid='$id'"); - $password = $row['pwd']; - $inputpwd = ",pwd"; - $pwd = substr($password, 5, 20); - $inputpwdv = ",'".$pwd."'"; - $pwdm = ",pwd='".$password."'"; + $row = $dsql->GetOne("SELECT * FROM `#@__member` WHERE mid='$id'"); + if (function_exists('password_hash')) { + $password = $row['pwd_new']; + $inputpwd = ",pwd_new"; + $inputpwdv = ",'".$password."'"; + $pwdm = ",pwd_new='".$password."'"; + } else { + $password = $row['pwd']; + $inputpwd = ",pwd"; + $pwd = substr($password, 5, 20); + $inputpwdv = ",'".$pwd."'"; + $pwdm = ",pwd='".$password."'"; + } } - $typeids = (empty($typeids)) ? "" : $typeids; + $typeids = (empty($typeids)) ? array() : $typeids; if ($typeids == '') { ShowMsg("请为该管理员指定管理栏目", "member_toadmin.php?id={$id}"); exit(); @@ -83,11 +96,11 @@ $dsql->SetQuery("SELECT id,typename FROM `#@__arctype` WHERE reid=0 AND (ispart= $dsql->Execute('op'); while ($nrow = $dsql->GetObject('op')) { $typeOptions .= "\r\n"; - $dsql->SetQuery("SELECT id,typename FROM #@__arctype WHERE reid={$nrow->id} AND (ispart=0 OR ispart=1)"); + $dsql->SetQuery("SELECT id,typename FROM `#@__arctype` WHERE reid={$nrow->id} AND (ispart=0 OR ispart=1)"); $dsql->Execute('s'); while ($nrow = $dsql->GetObject('s')) { $typeOptions .= "\r\n"; } } -$row = $dsql->GetOne("SELECT * FROM #@__member WHERE mid='$id'"); +$row = $dsql->GetOne("SELECT * FROM `#@__member` WHERE mid='$id'"); include DedeInclude('templets/member_toadmin.htm'); \ No newline at end of file diff --git a/src/admin/templets/member_main.htm b/src/admin/templets/member_main.htm index 60520a56..14feec71 100644 --- a/src/admin/templets/member_main.htm +++ b/src/admin/templets/member_main.htm @@ -88,7 +88,7 @@ {dede:field.mid/} - + [禁言]"; @@ -97,7 +97,6 @@ echo "
"; } ?> -
{dede:field.email/}
昵称:{dede:field.uname/} diff --git a/src/admin/templets/member_view.htm b/src/admin/templets/member_view.htm index d8f24a62..2e1f45e9 100644 --- a/src/admin/templets/member_view.htm +++ b/src/admin/templets/member_view.htm @@ -171,9 +171,8 @@ 特殊操作: - 修改资料 + 修改资料 登录此用户面板 - 浏览此用户 diff --git a/src/user/ajax_loginsta.php b/src/user/ajax_loginsta.php index f02c7997..8a38f52a 100755 --- a/src/user/ajax_loginsta.php +++ b/src/user/ajax_loginsta.php @@ -46,7 +46,7 @@ if ($format === 'json') { \ No newline at end of file diff --git a/src/user/edit_baseinfo.php b/src/user/edit_baseinfo.php index 470afad6..9eb0be10 100755 --- a/src/user/edit_baseinfo.php +++ b/src/user/edit_baseinfo.php @@ -22,19 +22,39 @@ if ($dopost == 'save') { ShowMsg('验证码错误', '-1'); exit(); } - if (!is_array($row) || $row['pwd'] != md5($oldpwd)) { - ShowMsg('您输入的旧密码错误或没填写,不允许修改资料', '-1'); - exit(); + if (function_exists('password_hash')) { + if (!is_array($row) || !password_verify($oldpwd, $row['pwd_new'])) { + ShowMsg('您输入的旧密码错误或没填写,不允许修改资料', '-1'); + exit(); + } + } else { + if (!is_array($row) || $row['pwd'] != md5($oldpwd)) { + ShowMsg('您输入的旧密码错误或没填写,不允许修改资料', '-1'); + exit(); + } } if ($userpwd != $userpwdok) { ShowMsg('您两次输入的新密码不一致', '-1'); exit(); } + $pp = "pwd"; if ($userpwd == '') { - $pwd = $row['pwd']; + if (function_exists('password_hash')) { + $pp = "pwd_new"; + $pwd = $row['pwd_new']; + } else { + $pwd = $row['pwd']; + } } else { - $pwd = md5($userpwd); - $pwd2 = substr(md5($userpwd), 5, 20); + if (function_exists('password_hash')) + { + $pp = "pwd_new"; + $pwd = password_hash($userpwd, PASSWORD_BCRYPT); + $pwd2 = password_hash($userpwd, PASSWORD_BCRYPT); + } else { + $pwd = md5($userpwd); + $pwd2 = substr(md5($userpwd), 5, 20); + } } $addupquery = ''; //修改安全问题或Email @@ -78,11 +98,11 @@ if ($dopost == 'save') { ShowMsg('请选择正常的性别', '-1'); exit(); } - $query1 = "UPDATE `#@__member` SET pwd='$pwd',sex='$sex'{$addupquery} where mid='".$cfg_ml->M_ID."' "; + $query1 = "UPDATE `#@__member` SET $pp='$pwd',sex='$sex'{$addupquery} where mid='".$cfg_ml->M_ID."' "; $dsql->ExecuteNoneQuery($query1); //如果是管理员,修改其后台密码 if ($cfg_ml->fields['matt'] == 10 && $pwd2 != "") { - $query2 = "UPDATE `#@__admin` SET pwd='$pwd2' where id='".$cfg_ml->M_ID."' "; + $query2 = "UPDATE `#@__admin` SET $pp='$pwd2' where id='".$cfg_ml->M_ID."' "; $dsql->ExecuteNoneQuery($query2); } //清除会员缓存 diff --git a/src/user/reg_new.php b/src/user/reg_new.php index 324e600b..1d0a19e9 100755 --- a/src/user/reg_new.php +++ b/src/user/reg_new.php @@ -67,11 +67,17 @@ if ($step == 1) { $logintime = time(); $joinip = GetIP(); $loginip = GetIP(); - $pwd = password_hash($userpwd, PASSWORD_BCRYPT); + $pp = "pwd"; + if (function_exists('password_hash')) { + $pp = "pwd_new"; + $pwd = password_hash($userpwd, PASSWORD_BCRYPT); + } else { + $pwd = md5($userpwd); + } $mtype = '个人'; $spaceSta = ($cfg_mb_spacesta < 0 ? $cfg_mb_spacesta : 0); - $inQuery = "INSERT INTO `#@__member` (`mtype` ,`userid` ,`pwd`, `pwd_new` ,`uname` ,`sex` ,`rank` ,`money` ,`email` ,`scores` ,`matt`, `spacesta` ,`face`,`safequestion`,`safeanswer` ,`jointime` ,`joinip` ,`logintime` ,`loginip` ) - VALUES ('$mtype','$userid','','$pwd','$uname','','10','$dfmoney','','$dfscores','0','$spaceSta','','','','$jointime','$joinip','$logintime','$loginip'); "; + $inQuery = "INSERT INTO `#@__member` (`mtype` ,`userid` ,`$pp`,`uname` ,`sex` ,`rank` ,`money` ,`email` ,`scores` ,`matt`, `spacesta` ,`face`,`safequestion`,`safeanswer` ,`jointime` ,`joinip` ,`logintime` ,`loginip` ) + VALUES ('$mtype','$userid','$pwd','$uname','','10','$dfmoney','','$dfscores','0','$spaceSta','','','','$jointime','$joinip','$logintime','$loginip'); "; if ($dsql->ExecuteNoneQuery($inQuery)) { $mid = $dsql->GetLastID(); //写入默认会员详细资料 diff --git a/src/user/resetpassword.php b/src/user/resetpassword.php index 86716f57..422c3816 100755 --- a/src/user/resetpassword.php +++ b/src/user/resetpassword.php @@ -93,20 +93,26 @@ if ($dopost == "") { if ($row['pwd'] == $sn) { if ($pwd != "") { if ($pwd == $pwdok) { - $pwdok = md5($pwdok); + $pp = "pwd"; + if (function_exists('password_hash')) { + $pp = "pwd_new"; + $pwdok = password_hash($pwdok, PASSWORD_BCRYPT); + } else { + $pwdok = md5($pwdok); + } $sql = "DELETE FROM `#@__pwd_tmp` WHERE `mid` = '$id';"; $db->executenonequery($sql); - $sql = "UPDATE `#@__member` SET `pwd` = '$pwdok' WHERE `mid` = '$id';"; + $sql = "UPDATE `#@__member` SET `$pp` = '$pwdok' WHERE `mid` = '$id';"; if ($db->executenonequery($sql)) { - showmsg('修改密码成功,请牢记新密码', 'login.php'); + ShowMsg('修改密码成功,请牢记新密码', 'login.php'); exit; } } } - showmsg('对不起,新密码为空或填写不一致', '-1'); + ShowMsg('对不起,新密码为空或填写不一致', '-1'); exit; } - showmsg('对不起,临时密码错误', '-1'); + ShowMsg('对不起,临时密码错误', '-1'); exit; } } \ No newline at end of file