国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
4.3KB

  1. <?php
  2. /**
  3. * @version $Id: edit_baseinfo.php 1 8:38 2010年7月9日Z tianya $
  4. * @package DedeBIZ.User
  5. * @copyright Copyright (c) 2022, DedeBIZ.COM
  6. * @license https://www.dedebiz.com/license
  7. * @link https://www.dedebiz.com
  8. */
  9. require_once(dirname(__FILE__)."/config.php");
  10. CheckRank(0, 0);
  11. $menutype = 'config';
  12. if (!isset($dopost)) $dopost = '';
  13. $pwd2 = (empty($pwd2)) ? "" : $pwd2;
  14. $row = $dsql->GetOne("SELECT * FROM `#@__member` WHERE mid='".$cfg_ml->M_ID."'");
  15. $face = $row['face'];
  16. if ($dopost == 'save') {
  17. $svali = GetCkVdValue();
  18. //校验CSRF
  19. CheckCSRF();
  20. if (strtolower($vdcode) != $svali || $svali == '') {
  21. ReSETVdValue();
  22. ShowMsg('验证码错误', '-1');
  23. exit();
  24. }
  25. if (function_exists('password_hash') && !empty($row['pwd_new'])) {
  26. if (!is_array($row) || !password_verify($oldpwd, $row['pwd_new'])) {
  27. ShowMsg('您输入的旧密码错误或没填写,不允许修改资料', '-1');
  28. exit();
  29. }
  30. } else {
  31. if (!is_array($row) || $row['pwd'] != md5($oldpwd)) {
  32. ShowMsg('您输入的旧密码错误或没填写,不允许修改资料', '-1');
  33. exit();
  34. }
  35. }
  36. if ($userpwd != $userpwdok) {
  37. ShowMsg('您两次输入的新密码不一致', '-1');
  38. exit();
  39. }
  40. $addupquery = '';
  41. $admaddupquery = '';
  42. $pp = "pwd";
  43. $pwd = '';
  44. if ($userpwd == '') {
  45. if (function_exists('password_hash')) {
  46. $pp = "pwd_new";
  47. $pwd = $row['pwd_new'];
  48. $addupquery = ',pwd=\'\'';
  49. } else {
  50. $pwd = $row['pwd'];
  51. }
  52. } else {
  53. if (function_exists('password_hash'))
  54. {
  55. $pp = "pwd_new";
  56. $pwd = password_hash($userpwd, PASSWORD_BCRYPT);
  57. $pwd2 = password_hash($userpwd, PASSWORD_BCRYPT);
  58. $addupquery = ',pwd=\'\'';
  59. $admaddupquery = ',pwd=\'\'';
  60. } else {
  61. $pwd = md5($userpwd);
  62. $pwd2 = substr(md5($userpwd), 5, 20);
  63. }
  64. }
  65. //修改安全问题或Email
  66. if ($email != $row['email'] || ($newsafequestion != 0 && $newsafeanswer != '')) {
  67. if ($row['safequestion'] != 0 && ($row['safequestion'] != $safequestion || $row['safeanswer'] != $safeanswer)) {
  68. ShowMsg('您的旧安全问题及答案不正确,不能修改Email或安全问题', '-1');
  69. exit();
  70. }
  71. //修改Email
  72. if ($email != $row['email']) {
  73. if (!CheckEmail($email)) {
  74. ShowMsg('Email格式不正确', '-1');
  75. exit();
  76. } else {
  77. $addupquery .= ",email='$email'";
  78. }
  79. }
  80. //修改安全问题
  81. if ($newsafequestion != 0 && $newsafeanswer != '') {
  82. if (strlen($newsafeanswer) > 30) {
  83. ShowMsg('您的新安全问题的答案太长了,请保持在30字节以内', '-1');
  84. exit();
  85. } else {
  86. $newsafequestion = HtmlReplace($newsafequestion, 1);
  87. $newsafeanswer = HtmlReplace($newsafeanswer, 1);
  88. $addupquery .= ",safequestion='$newsafequestion',safeanswer='$newsafeanswer'";
  89. }
  90. }
  91. }
  92. //修改uname
  93. if ($uname != $row['uname']) {
  94. $rs = CheckUserID($uname, '昵称或公司名称', FALSE);
  95. if ($rs != 'ok') {
  96. ShowMsg($rs, '-1');
  97. exit();
  98. }
  99. $addupquery .= ",uname='$uname'";
  100. }
  101. //性别
  102. if (!in_array($sex, array('男', '女', '保密'))) {
  103. ShowMsg('请选择正常的性别', '-1');
  104. exit();
  105. }
  106. $query1 = "UPDATE `#@__member` SET $pp='$pwd',sex='$sex'{$addupquery} where mid='".$cfg_ml->M_ID."' ";
  107. $dsql->ExecuteNoneQuery($query1);
  108. //如果是管理员,修改其后台密码
  109. if ($cfg_ml->fields['matt'] == 10 && $pwd2 != "") {
  110. $query2 = "UPDATE `#@__admin` SET $pp='$pwd2'{$admaddupquery} where id='".$cfg_ml->M_ID."' ";
  111. $dsql->ExecuteNoneQuery($query2);
  112. }
  113. //清除会员缓存
  114. $cfg_ml->DelCache($cfg_ml->M_ID);
  115. ShowMsg('成功更新您的基本资料', 'edit_baseinfo.php', 0, 5000);
  116. exit();
  117. }
  118. include(DEDEMEMBER."/templets/edit_baseinfo.htm");