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

member_do.php 13KB

3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. <?php
  2. /**
  3. * 会员管理操作
  4. *
  5. * @version $id:member_do.php 13:47 2010年7月19日 tianya $
  6. * @package DedeBIZ.Administrator
  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. require_once(DEDEINC."/libraries/oxwindow.class.php");
  13. if (empty($dopost)) $dopost = '';
  14. if (empty($fmdo)) $fmdo = '';
  15. $ENV_GOBACK_URL = isset($_COOKIE['ENV_GOBACK_URL']) ? 'member_main.php' : '';
  16. //删除会员
  17. if ($dopost == "delmember") {
  18. CheckPurview('member_Del');
  19. if ($fmdo == 'yes') {
  20. $id = preg_replace("#[^0-9]#", '', $id);
  21. $safecodeok = substr(md5($cfg_cookie_encode.$randcode), 0, 24);
  22. if ($safecodeok != $safecode) {
  23. ShowMsg("请填写正确的验证安全码", "member_do.php?id={$id}&dopost=delmember");
  24. exit();
  25. }
  26. if (!empty($id)) {
  27. //删除会员信息
  28. $row = $dsql->GetOne("SELECT * FROM `#@__member` WHERE mid='$id' LIMIT 1 ");
  29. $rs = 0;
  30. if ($row['matt'] == 10) {
  31. $nrow = $dsql->GetOne("SELECT * FROM `#@__admin` WHERE id='$id' LIMIT 1 ");
  32. //已经删除关连的管理员帐号
  33. if (!is_array($nrow)) $rs = $dsql->ExecuteNoneQuery2("DELETE FROM `#@__member` WHERE mid='$id' LIMIT 1");
  34. } else {
  35. $rs = $dsql->ExecuteNoneQuery2("DELETE FROM `#@__member` WHERE mid='$id' LIMIT 1");
  36. }
  37. if ($rs > 0) {
  38. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_tj` WHERE mid='$id' LIMIT 1");
  39. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_space` WHERE mid='$id' LIMIT 1");
  40. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_company` WHERE mid='$id' LIMIT 1");
  41. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_person` WHERE mid='$id' LIMIT 1");
  42. //删除会员相关数据
  43. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_stow` WHERE mid='$id' ");
  44. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_flink` WHERE mid='$id' ");
  45. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_operation` WHERE mid='$id' ");
  46. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_pms` WHERE toid='$id' Or fromid='$id' ");
  47. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_friends` WHERE mid='$id' Or fid='$id' ");
  48. $dsql->ExecuteNoneQuery("DELETE FROM `#@__feedback` WHERE mid='$id' ");
  49. $dsql->ExecuteNoneQuery("UPDATE `#@__archives` SET mid='0' WHERE mid='$id'");
  50. } else {
  51. ShowMsg("无法删除此会员,如果这个会员是管理员,必须先删除这个管理员才能删除此帐号", $ENV_GOBACK_URL);
  52. exit();
  53. }
  54. }
  55. ShowMsg("成功删除一个账户", $ENV_GOBACK_URL);
  56. exit();
  57. }
  58. $randcode = mt_rand(10000, 99999);
  59. $safecode = substr(md5($cfg_cookie_encode.$randcode), 0, 24);
  60. $wintitle = "删除指定会员";
  61. $win = new OxWindow();
  62. $win->Init("member_do.php", "/static/web/js/admin.blank.js", "POST");
  63. $win->AddHidden("fmdo", "yes");
  64. $win->AddHidden("dopost", $dopost);
  65. $win->AddHidden("id", $id);
  66. $win->AddHidden("randcode", $randcode);
  67. $win->AddHidden("safecode", $safecode);
  68. $win->AddTitle("您确定要删除id".$id."会员吗");
  69. $win->AddMsgItem("<tr><td>验证安全码:<input name='safecode' type='text' id='safecode' class='admin-input-lg'>(安全码:$safecode)</td></tr>");
  70. $winform = $win->GetWindow("ok");
  71. $win->Display();
  72. } else if ($dopost == "delmembers") {
  73. CheckPurview('member_Del');
  74. if ($fmdo == 'yes') {
  75. $safecodeok = substr(md5($cfg_cookie_encode.$randcode), 0, 24);
  76. if ($safecodeok != $safecode) {
  77. ShowMsg("请填写正确的验证安全码", "member_do.php?id={$id}&dopost=delmembers");
  78. exit();
  79. }
  80. if (!empty($id)) {
  81. //删除会员信息
  82. $rs = $dsql->ExecuteNoneQuery2("DELETE FROM `#@__member` WHERE mid IN (".str_replace("`", ",", $id).") And matt<>10 ");
  83. if ($rs > 0) {
  84. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_tj` WHERE mid IN (".str_replace("`", ",", $id).") ");
  85. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_space` WHERE mid IN (".str_replace("`", ",", $id).") ");
  86. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_company` WHERE mid IN (".str_replace("`", ",", $id).") ");
  87. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_person` WHERE mid IN (".str_replace("`", ",", $id).") ");
  88. //删除会员相关数据
  89. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_stow` WHERE mid IN (".str_replace("`", ",", $id).") ");
  90. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_flink` WHERE mid IN (".str_replace("`", ",", $id).") ");
  91. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_operation` WHERE mid IN (".str_replace("`", ",", $id).") ");
  92. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_pms` WHERE toid IN (".str_replace("`", ",", $id).") Or fromid IN (".str_replace("`", ",", $id).") ");
  93. $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_friends` WHERE mid IN (".str_replace("`", ",", $id).") Or fid IN (".str_replace("`", ",", $id).") ");
  94. $dsql->ExecuteNoneQuery("DELETE FROM `#@__feedback` WHERE mid IN (".str_replace("`", ",", $id).") ");
  95. $dsql->ExecuteNoneQuery("UPDATE `#@__archives` SET mid='0' WHERE mid IN (".str_replace("`", ",", $id).")");
  96. } else {
  97. ShowMsg("无法删除此会员,如果这个会员是管理员关连的id,必须先删除这个管理员才能删除此帐号", $ENV_GOBACK_URL);
  98. exit();
  99. }
  100. }
  101. ShowMsg("成功删除这些会员", $ENV_GOBACK_URL);
  102. exit();
  103. }
  104. $randcode = mt_rand(10000, 99999);
  105. $safecode = substr(md5($cfg_cookie_encode.$randcode), 0, 24);
  106. $wintitle = "删除指定会员";
  107. $win = new OxWindow();
  108. $win->Init("member_do.php", "/static/web/js/admin.blank.js", "POST");
  109. $win->AddHidden("fmdo", "yes");
  110. $win->AddHidden("dopost", $dopost);
  111. $win->AddHidden("id", $id);
  112. $win->AddHidden("randcode", $randcode);
  113. $win->AddHidden("safecode", $safecode);
  114. $win->AddTitle("您确定要删除id".$id."会员吗");
  115. $win->AddMsgItem("<tr><td>验证安全码:<input name='safecode' type='text' id='safecode' class='admin-input-lg'> (安全码:$safecode)</td></tr>");
  116. $winform = $win->GetWindow("ok");
  117. $win->Display();
  118. }
  119. //推荐会员
  120. else if ($dopost == "recommend") {
  121. CheckPurview('member_Edit');
  122. $id = preg_replace("#[^0-9]#", "", $id);
  123. if ($matt == 0) {
  124. $dsql->ExecuteNoneQuery("UPDATE `#@__member` SET matt=1 WHERE mid='$id' AND matt<>10 LIMIT 1");
  125. ShowMsg("成功设置一个账户推荐", $ENV_GOBACK_URL);
  126. exit();
  127. } else {
  128. $dsql->ExecuteNoneQuery("UPDATE `#@__member` SET matt=0 WHERE mid='$id' AND matt<>10 LIMIT 1");
  129. ShowMsg("成功取消一个账户推荐", $ENV_GOBACK_URL);
  130. exit();
  131. }
  132. }
  133. //修改会员
  134. else if ($dopost == 'edituser') {
  135. CheckPurview('member_Edit');
  136. $send_max = isset($send_max)? intval($send_max) : 0;
  137. $user_money = isset($user_money)? floatval($user_money) : 0.0;
  138. $money = isset($money)? intval($money) : 0;
  139. $scores = isset($scores)? intval($scores) : 0;
  140. $rank = isset($rank)? intval($rank) : 0;
  141. $id = isset($id)? intval($id) : 0;
  142. $email = isset($email)? HtmlReplace($email,1) : '';
  143. if (!CheckEmail($email)) {
  144. ShowMsg("邮箱格式错误", "-1");
  145. exit();
  146. }
  147. $uname = isset($uname)? HtmlReplace($uname,1) : '';
  148. $spacesta = isset($spacesta)? HtmlReplace($spacesta,1) : '';
  149. $exptime = isset($exptime)? HtmlReplace($exptime,1) : '';
  150. if (!isset($_POST['id'])) exit ('dedebiz');
  151. $pwdsql = empty($pwd) ? '' : ",pwd='".md5($pwd)."'";
  152. if (function_exists('password_hash')) {
  153. $pwdsql = empty($pwd) ? '' : ",pwd_new='".password_hash($pwd, PASSWORD_BCRYPT)."'";
  154. }
  155. if (empty($sex)) $sex = '男';
  156. $uptime = GetMkTime($uptime);
  157. if ($matt == 10 && $oldmatt != 10) {
  158. ShowMsg("不支持直接把前台会员转为管理的操作", "-1");
  159. exit();
  160. }
  161. $query = "UPDATE `#@__member` SET send_max='$send_max',email='$email',uname='$uname',sex='$sex',matt='$matt',user_money='$user_money',money='$money',scores='$scores',`rank`='$rank',spacesta='$spacesta',uptime='$uptime',exptime='$exptime'$pwdsql WHERE mid='$id' AND matt<>10 ";
  162. $rs = $dsql->ExecuteNoneQuery2($query);
  163. if ($rs == 0) {
  164. $query = "UPDATE `#@__member` SET send_max='$send_max',email='$email',uname='$uname',sex='$sex',user_money='$user_money',money='$money',scores='$scores',`rank`='$rank',spacesta='$spacesta',uptime='$uptime',exptime='$exptime'$pwdsql WHERE mid='$id' ";
  165. $rs = $dsql->ExecuteNoneQuery2($query);
  166. if ($rank == 10 || $rank == 100) {
  167. $dsql->ExecuteNoneQuery2("UPDATE `#@__admin` SET `uname`='$uname' WHERE id='$id'");
  168. }
  169. }
  170. ShowMsg('成功修改会员资料', 'member_edit.php?id='.$id);
  171. exit();
  172. }
  173. //登录会员
  174. else if ($dopost == "memberlogin") {
  175. CheckPurview('member_Edit');
  176. PutCookie('DedeUserID', $id, 1800);
  177. PutCookie('DedeLoginTime', time(), 1800);
  178. if (empty($jumpurl)) header("location:$cfg_memberurl/index.php");
  179. else header("location:$jumpurl");
  180. } else if ($dopost == "deoperations") {
  181. $nid = preg_replace('#[^0-9,]#', '', preg_replace('#`#', ',', $nid));
  182. $nid = explode(',', $nid);
  183. if (is_array($nid)) {
  184. foreach ($nid as $var) {
  185. $query = "DELETE FROM `#@__member_operation` WHERE aid = '$var'";
  186. $dsql->ExecuteNoneQuery($query);
  187. }
  188. ShowMsg("删除成功", "member_operations.php");
  189. exit();
  190. }
  191. } else if ($dopost == "upoperations") {
  192. $nid = preg_replace('#[^0-9,]#', '', preg_replace('#`#', ',', $nid));
  193. $nid = explode(',', $nid);
  194. if (is_array($nid)) {
  195. foreach ($nid as $var) {
  196. $moRow = $dsql->GetOne("SELECT * FROM `#@__member_operation` WHERE aid='$var'");
  197. if ($moRow['sta'] == 0) {
  198. $query = "UPDATE `#@__member_operation` SET sta = '1' WHERE aid = '$var'";
  199. $dsql->ExecuteNoneQuery($query);
  200. }
  201. }
  202. ShowMsg("设置成功", "member_operations.php");
  203. exit();
  204. }
  205. } else if ($dopost == "okoperations") {
  206. $nid = preg_replace('#[^0-9,]#', '', preg_replace('#`#', ',', $nid));
  207. $nid = explode(',', $nid);
  208. if (is_array($nid)) {
  209. foreach ($nid as $var) {
  210. $moRow = $dsql->GetOne("SELECT * FROM `#@__member_operation` WHERE aid='$var'");
  211. if ($moRow['sta'] == 1) {
  212. if ($moRow['product'] === "card") {
  213. //积分
  214. $proRow = $dsql->GetOne("SELECT * FROM `#@__moneycard_type` WHERE tid={$moRow['pid']}");
  215. $query = "UPDATE `#@__member` SET money = money+{$proRow['num']} WHERE mid = '{$moRow['mid']}'";
  216. $dsql->ExecuteNoneQuery($query);
  217. } else if ($moRow['product'] === "member"){
  218. $row = $dsql->GetOne("SELECT * FROM `#@__member_type` WHERE aid='{$moRow['pid']}'");
  219. $rank = $row['rank'];
  220. $exptime = $row['exptime'];
  221. $rs = $dsql->GetOne("SELECT uptime,exptime FROM `#@__member` WHERE mid='".$moRow['mid']."'");
  222. if ($rs['uptime']!=0 && $rs['exptime']!=0) {
  223. $nowtime = time();
  224. $mhasDay = $rs['exptime'] - ceil(($nowtime - $rs['uptime'])/3600/24) + 1;
  225. $mhasDay=($mhasDay>0)? $mhasDay : 0;
  226. }
  227. $memrank = $dsql->GetOne("SELECT money,scores FROM `#@__arcrank` WHERE `rank`='$rank'");
  228. //更新会员信息
  229. $sqlm = "UPDATE `#@__member` SET `rank`='$rank',`money`=`money`+'{$memrank['money']}',scores=scores+'{$memrank['scores']}',exptime='$exptime'+'$mhasDay',uptime='".time()."' WHERE mid='".$moRow['mid']."'";
  230. $sqlmo = "UPDATE `#@__member_operation` SET sta='2',oldinfo='会员升级成功' WHERE buyid='{$moRow['pid']}' ";
  231. if (!($dsql->ExecuteNoneQuery($sqlm) && $dsql->ExecuteNoneQuery($sqlmo))) {
  232. ShowMsg("升级会员失败", "javascript:;");
  233. exit;
  234. }
  235. }
  236. $query = "UPDATE `#@__member_operation` SET sta = '2' WHERE aid = '$var'";
  237. $dsql->ExecuteNoneQuery($query);
  238. }
  239. ShowMsg("设置成功", "member_operations.php");
  240. exit();
  241. }
  242. }
  243. }
  244. ?>