国内流行的内容管理系统(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.

edit_baseinfo.php 4.3KB

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