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

241 lines
8.9KB

  1. <?php
  2. /**
  3. * @version $Id: index_do.php 1 8:24 2010年7月9日Z tianya $
  4. * @package DedeBIZ.Member
  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. if (empty($dopost)) $dopost = '';
  11. if (empty($fmdo)) $fmdo = '';
  12. /*********************
  13. function check_email()
  14. *******************/
  15. if ($fmdo == 'sendMail') {
  16. if (!CheckEmail($cfg_ml->fields['email'])) {
  17. ShowMsg('您的邮箱格式有错误', '-1');
  18. exit();
  19. }
  20. if ($cfg_ml->fields['spacesta'] != -10) {
  21. ShowMsg('您的帐号不在邮件验证状态,本操作无效', '-1');
  22. exit();
  23. }
  24. $userhash = md5($cfg_cookie_encode.'--'.$cfg_ml->fields['mid'].'--'.$cfg_ml->fields['email']);
  25. $url = $cfg_basehost.(empty($cfg_cmspath) ? '/' : $cfg_cmspath)."/member/index_do.php?fmdo=checkMail&mid={$cfg_ml->fields['mid']}&userhash={$userhash}&do=1";
  26. $url = preg_replace("#http:\/\/#i", '', $url);
  27. $url = 'http://'.preg_replace("#\/\/#i", '/', $url);
  28. $mailtitle = "{$cfg_webname}--会员邮件验证通知";
  29. $mailbody = '';
  30. $mailbody .= "尊敬的用户[{$cfg_ml->fields['uname']}],您好:\r\n";
  31. $mailbody .= "欢迎注册成为[{$cfg_webname}]的会员。\r\n";
  32. $mailbody .= "要通过注册,还必须进行最后一步操作,请点击或复制下面链接到地址栏访问这地址:\r\n\r\n";
  33. $mailbody .= "{$url}\r\n\r\n";
  34. $mailbody .= "Power by https://www.dedebiz.com DedeBIZ内容管理系统\r\n";
  35. $headers = "From: ".$cfg_adminemail."\r\nReply-To: ".$cfg_adminemail;
  36. if (!empty($cfg_bizcore_appid) && !empty($cfg_bizcore_key)) {
  37. $client = new DedeBizClient($cfg_bizcore_hostname, $cfg_bizcore_port);
  38. $client->appid = $cfg_bizcore_appid;
  39. $client->key = $cfg_bizcore_key;
  40. $client->MailSend($cfg_ml->fields['email'],$mailtitle,$mailtitle,$mailbody);
  41. $client->Close();
  42. } else {
  43. if ($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server)) {
  44. $mailtype = 'TXT';
  45. require_once(DEDEINC.'/mail.class.php');
  46. $smtp = new smtp($cfg_smtp_server, $cfg_smtp_port, true, $cfg_smtp_usermail, $cfg_smtp_password);
  47. $smtp->debug = false;
  48. $smtp->sendmail($cfg_ml->fields['email'], $cfg_webname, $cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
  49. } else {
  50. @mail($cfg_ml->fields['email'], $mailtitle, $mailbody, $headers);
  51. }
  52. }
  53. ShowMsg('成功发送邮件,请稍后登录您的邮箱进行接收', '/member');
  54. exit();
  55. } else if ($fmdo == 'checkMail') {
  56. $mid = intval($mid);
  57. if (empty($mid)) {
  58. ShowMsg('您的效验串不合法', '-1');
  59. exit();
  60. }
  61. $row = $dsql->GetOne("SELECT * FROM `#@__member` WHERE mid='{$mid}' ");
  62. $needUserhash = md5($cfg_cookie_encode.'--'.$mid.'--'.$row['email']);
  63. if ($needUserhash != $userhash) {
  64. ShowMsg('您的效验串不合法', '-1');
  65. exit();
  66. }
  67. if ($row['spacesta'] != -10) {
  68. ShowMsg('您的帐号不在邮件验证状态,本操作无效', '-1');
  69. exit();
  70. }
  71. $dsql->ExecuteNoneQuery("UPDATE `#@__member` SET spacesta=0 WHERE mid='{$mid}' ");
  72. //清除会员缓存
  73. $cfg_ml->DelCache($mid);
  74. ShowMsg('操作成功,请重新登录系统', 'login.php');
  75. exit();
  76. }
  77. /*********************
  78. function Case_user()
  79. *******************/
  80. else if ($fmdo == 'user') {
  81. //检查用户名是否存在
  82. if ($dopost == "checkuser") {
  83. AjaxHead();
  84. $msg = '';
  85. $uid = trim($uid);
  86. if ($cktype == 0) {
  87. $msgtitle = '用户笔名';
  88. } else {
  89. $msgtitle = '用户名';
  90. }
  91. if ($cktype != 0 || $cfg_mb_wnameone == 'N') {
  92. $msg = CheckUserID($uid, $msgtitle);
  93. } else {
  94. $msg = CheckUserID($uid, $msgtitle, false);
  95. }
  96. if ($msg == 'ok') {
  97. $msg = "<span style='color:#28a745'><b>√{$msgtitle}可以使用</b></span>";
  98. } else {
  99. $msg = "<span style='color:#e74d58'><b>×{$msg}</b></span>";
  100. }
  101. echo $msg;
  102. exit();
  103. }
  104. //检查email是否存在
  105. else if ($dopost == "checkmail") {
  106. AjaxHead();
  107. if ($cfg_md_mailtest == 'N') {
  108. $msg = "<span style='color:#28a745'><b>√可以使用</b></span>";
  109. } else {
  110. if (!CheckEmail($email)) {
  111. $msg = "<span style='color:#28a745'><b>×Email格式有误</b></span>";
  112. } else {
  113. $row = $dsql->GetOne("SELECT mid FROM `#@__member` WHERE email LIKE '$email' LIMIT 1");
  114. if (!is_array($row)) {
  115. $msg = "<span style='color:#28a745'><b>√可以使用</b></span>";
  116. } else {
  117. $msg = "<span style='color:#e74d58'><b>×Email已经被另一个帐号占用</b></span>";
  118. }
  119. }
  120. }
  121. echo $msg;
  122. exit();
  123. }
  124. //引入注册页面
  125. else if ($dopost == "regnew") {
  126. $step = empty($step) ? 1 : intval(preg_replace("/[^\d]/", '', $step));
  127. require_once(dirname(__FILE__)."/reg_new.php");
  128. exit();
  129. }
  130. /***************************
  131. //积分换金币
  132. function money2s() { }
  133. ***************************/
  134. else if ($dopost == "money2s") {
  135. CheckRank(0, 0);
  136. if ($cfg_money_scores == 0) {
  137. ShowMsg('系统禁用了积分与金币兑换功能', '-1');
  138. exit();
  139. }
  140. $money = empty($money) ? "" : abs(intval($money));
  141. if (empty($money)) {
  142. ShowMsg('您没指定要兑换多少金币', '-1');
  143. exit();
  144. }
  145. $needscores = $money * $cfg_money_scores;
  146. if ($cfg_ml->fields['scores'] < $needscores) {
  147. ShowMsg('您积分不足,不能换取这么多的金币', '-1');
  148. exit();
  149. }
  150. $litmitscores = $cfg_ml->fields['scores'] - $needscores;
  151. //保存记录
  152. $mtime = time();
  153. $inquery = "INSERT INTO `#@__member_operation`(`buyid` , `pname` , `product` , `money` , `mtime` , `pid` , `mid` , `sta` ,`oldinfo`)
  154. VALUES ('ScoresToMoney', '积分换金币操作', 'stc' , '0' , '$mtime' , '0' , '{$cfg_ml->M_ID}' , '0' , '用 {$needscores} 积分兑了换金币:{$money} 个'); ";
  155. $dsql->ExecuteNoneQuery($inquery);
  156. //修改积分与金币值
  157. $dsql->ExecuteNoneQuery("UPDATE `#@__member` SET `scores`=$litmitscores, money= money + $money WHERE mid='".$cfg_ml->M_ID."' ");
  158. //清除会员缓存
  159. $cfg_ml->DelCache($cfg_ml->M_ID);
  160. ShowMsg('成功兑换指定量的金币', 'operation.php');
  161. exit();
  162. }
  163. }
  164. /*********************
  165. function login()
  166. *******************/
  167. else if ($fmdo == 'login') {
  168. //用户登录
  169. if ($dopost == "login") {
  170. if (!isset($vdcode)) {
  171. $vdcode = '';
  172. }
  173. $svali = GetCkVdValue();
  174. if (preg_match("/2/", $safe_gdopen)) {
  175. if (strtolower($vdcode) != $svali || $svali == '') {
  176. ResetVdValue();
  177. ShowMsg('验证码错误', 'index.php');
  178. exit();
  179. }
  180. }
  181. if (CheckUserID($userid, '', false) != 'ok') {
  182. ResetVdValue();
  183. ShowMsg("您输入的用户名 {$userid} 不合法", "index.php");
  184. exit();
  185. }
  186. if ($pwd == '') {
  187. ResetVdValue();
  188. ShowMsg("密码不能为空", "-1", 0, 2000);
  189. exit();
  190. }
  191. //检查帐号
  192. $rs = $cfg_ml->CheckUser($userid, $pwd);
  193. if ($rs == 0) {
  194. ResetVdValue();
  195. ShowMsg("用户名不存在", "index.php", 0, 2000);
  196. exit();
  197. } else if ($rs == -1) {
  198. ResetVdValue();
  199. ShowMsg("密码错误", "index.php", 0, 2000);
  200. exit();
  201. } else if ($rs == -2) {
  202. ResetVdValue();
  203. ShowMsg("管理员帐号不允许从前台登录", "index.php", 0, 2000);
  204. exit();
  205. } else {
  206. //清除会员缓存
  207. $cfg_ml->DelCache($cfg_ml->M_ID);
  208. if (empty($gourl) || preg_match("#action|_do#i", $gourl)) {
  209. ShowMsg("成功登录,5秒钟后转向系统主页...", "index.php", 0, 2000);
  210. } else {
  211. $gourl = str_replace('^', '&', $gourl);
  212. ShowMsg("成功登录,现在转向指定页面...", $gourl, 0, 2000);
  213. }
  214. exit();
  215. }
  216. }
  217. //退出登录
  218. else if ($dopost == "exit") {
  219. $cfg_ml->ExitCookie();
  220. ShowMsg("成功退出登录", "index.php", 0, 2000);
  221. exit();
  222. }
  223. } else {
  224. ShowMsg("本页面禁止返回!", "index.php");
  225. }