国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

263 lines
11KB

  1. <?php
  2. /**
  3. * 会员登录
  4. *
  5. * @version $id:login.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. if (empty($dopost)) $dopost = '';
  13. if (empty($fmdo)) $fmdo = '';
  14. if ($fmdo == 'sendMail') {
  15. if (!CheckEmail($cfg_ml->fields['email'])) {
  16. ShowMsg('您的邮箱格式有错误', 'index.php');
  17. exit();
  18. }
  19. if ($cfg_ml->fields['spacesta'] != -10) {
  20. ShowMsg('您的帐号不在邮件验证状态,本操作无效', 'index.php');
  21. exit();
  22. }
  23. $userhash = md5($cfg_cookie_encode.'--'.$cfg_ml->fields['mid'].'--'.$cfg_ml->fields['email']);
  24. $url = $cfg_basehost.(empty($cfg_cmspath) ? '/' : $cfg_cmspath)."/user/index_do.php?fmdo=checkMail&mid={$cfg_ml->fields['mid']}&userhash={$userhash}&do=1";
  25. $url = preg_replace("#http:\/\/#i", '', $url);
  26. $proto = IsSSL()? "https://" : "http://";
  27. $url = $proto.preg_replace("#\/\/#i", '/', $url);
  28. $mailtitle = "来自{$cfg_webname}:邮件验证通知";
  29. $mailbody = '';
  30. $mailbody .= "尊敬的{$cfg_ml->fields['uname']}会员,欢迎成为{$cfg_webname}会员!\r\n通过注册还须进行最后一步操作,请点击链接或复制链接到地址栏访问:{$url}";
  31. $headers = "From: ".$cfg_adminemail."\r\nReply-To: ".$cfg_adminemail;
  32. if (!empty($cfg_bizcore_appid) && !empty($cfg_bizcore_key)) {
  33. $client = new DedeBizClient();
  34. $client->MailSend($cfg_ml->fields['email'],$mailtitle,$mailtitle,$mailbody);
  35. $client->Close();
  36. } else {
  37. if ($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server)) {
  38. $mailtype = 'HTML';
  39. require_once(DEDEINC.'/libraries/mail.class.php');
  40. $smtp = new smtp($cfg_smtp_server, $cfg_smtp_port, true, $cfg_smtp_usermail, $cfg_smtp_password);
  41. $smtp->debug = false;
  42. $smtp->sendmail($cfg_ml->fields['email'], $cfg_webname, $cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
  43. } else {
  44. @mail($cfg_ml->fields['email'], $mailtitle, $mailbody, $headers);
  45. }
  46. }
  47. ShowMsg('成功发送邮件,请稍后登录您的邮箱进行接收', 'index.php');
  48. exit();
  49. } else if ($fmdo == 'checkMail') {
  50. $mid = intval($mid);
  51. if (empty($mid)) {
  52. ShowMsg('您的效验串不合法', 'index.php');
  53. exit();
  54. }
  55. $row = $dsql->GetOne("SELECT * FROM `#@__member` WHERE mid='{$mid}' ");
  56. $needUserhash = md5($cfg_cookie_encode.'--'.$mid.'--'.$row['email']);
  57. if ($needUserhash != $userhash) {
  58. ShowMsg('您的效验串不合法', 'index.php');
  59. exit();
  60. }
  61. if ($row['spacesta'] != -10) {
  62. ShowMsg('操作无效,您的帐号不在邮件验证状态', 'index.php');
  63. exit();
  64. }
  65. $dsql->ExecuteNoneQuery("UPDATE `#@__member` SET spacesta=0 WHERE mid='{$mid}' ");
  66. //清除会员缓存
  67. $cfg_ml->DelCache($mid);
  68. ShowMsg('正在验证中', 'login.php');
  69. exit();
  70. } else if ($fmdo == 'user') {
  71. //检查账号是否存在
  72. if ($dopost == "checkuser") {
  73. AjaxHead();
  74. $msg = '';
  75. $uid = trim($uid);
  76. if ($cktype == 0) {
  77. $msgtitle = '账号';
  78. } else {
  79. $msgtitle = '账号';
  80. }
  81. if ($cktype != 0 || $cfg_mb_wnameone == 'N') {
  82. $msg = CheckUserID($uid, $msgtitle);
  83. } else {
  84. $msg = CheckUserID($uid, $msgtitle, false);
  85. }
  86. if ($msg == 'ok') {
  87. $msg = "<span class='text-success'><i class='fa fa-check'></i> {$msgtitle}可以使用</span>";
  88. } else {
  89. $msg = "<span class='text-danger'><i class='fa fa-times'></i> {$msg}</span>";
  90. }
  91. echo $msg;
  92. exit();
  93. }
  94. //检查邮箱是否存在
  95. else if ($dopost == "checkmail") {
  96. AjaxHead();
  97. if ($cfg_md_mailtest == 'N') {
  98. $msg = "<span class='text-success'><i class='fa fa-check'></i> 可以使用</span>";
  99. } else {
  100. if (!CheckEmail($email)) {
  101. $msg = "<span class='text-danger'><i class='fa fa-times'></i> 邮箱格式有误</span>";
  102. } else {
  103. $row = $dsql->GetOne("SELECT mid FROM `#@__member` WHERE email LIKE '$email' LIMIT 1");
  104. if (!is_array($row)) {
  105. $msg = "<span class='text-success'><i class='fa fa-check'></i> 可以使用</span>";
  106. } else {
  107. $msg = "<span class='text-danger'><i class='fa fa-times'></i> 邮箱已经被另一个账户占用</span>";
  108. }
  109. }
  110. }
  111. echo $msg;
  112. exit();
  113. }
  114. //引入注册页面
  115. else if ($dopost == "regnew") {
  116. $step = empty($step) ? 1 : intval(preg_replace("/[^\d]/", '', $step));
  117. require_once(dirname(__FILE__)."/reg_new.php");
  118. exit();
  119. }
  120. //积分换金币
  121. else if ($dopost == "money2s") {
  122. CheckRank(0, 0);//禁止游客操作
  123. if ($cfg_money_scores == 0) {
  124. ShowMsg('系统禁用了积分与金币兑换功能', 'index.php');
  125. exit();
  126. }
  127. $money = empty($money) ? "" : abs(intval($money));
  128. if (empty($money)) {
  129. ShowMsg('您没指定要兑换多少金币', 'index.php');
  130. exit();
  131. }
  132. $needscores = $money * $cfg_money_scores;
  133. if ($cfg_ml->fields['scores'] < $needscores) {
  134. ShowMsg('您积分不足,不能换取这么多的金币', 'index.php');
  135. exit();
  136. }
  137. $litmitscores = $cfg_ml->fields['scores'] - $needscores;
  138. //保存记录
  139. $mtime = time();
  140. $inquery = "INSERT INTO `#@__member_operation` (`buyid`,`pname`,`product`,`money`,`mtime`,`pid`,`mid`,`sta` ,`oldinfo`) VALUES ('ScoresToMoney','积分换金币操作','stc' ,'0' ,'$mtime' ,'0' ,'{$cfg_ml->M_ID}','0' ,'用{$needscores}积分兑了换金币{$money}个'); ";
  141. $dsql->ExecuteNoneQuery($inquery);
  142. //修改积分与金币值
  143. $dsql->ExecuteNoneQuery("UPDATE `#@__member` SET `scores`=$litmitscores, money= money + $money WHERE mid='".$cfg_ml->M_ID."' ");
  144. //清除会员缓存
  145. $cfg_ml->DelCache($cfg_ml->M_ID);
  146. ShowMsg('成功兑换指定量的金币', 'operation.php');
  147. exit();
  148. }
  149. } else if ($fmdo == 'login') {
  150. //会员登录
  151. if ($dopost == "login") {
  152. if (!isset($vdcode)) {
  153. $vdcode = '';
  154. }
  155. if (CheckUserID($userid, '', false) != 'ok') {
  156. ResetVdValue();
  157. ShowMsg("您输入的账号{$userid}已禁止", "index.php");
  158. exit();
  159. }
  160. if ($pwd == '') {
  161. ResetVdValue();
  162. ShowMsg('密码不能为空', 'index.php', 0, 2000);
  163. exit();
  164. }
  165. $isNeed = $cfg_ml->isNeedCheckCode($userid);
  166. if ($isNeed) {
  167. $svali = GetCkVdValue();
  168. if (strtolower($vdcode) != $svali || $svali == '') {
  169. ResetVdValue();
  170. ShowMsg('验证码不正确', 'index.php');
  171. exit();
  172. }
  173. }
  174. //检查帐号
  175. $rs = $cfg_ml->CheckUser($userid, $pwd);
  176. if ($rs == 0) {
  177. ResetVdValue();
  178. ShowMsg('您的账号错误', 'index.php', 0, 2000);
  179. exit();
  180. } else if ($rs == -1) {
  181. ResetVdValue();
  182. ShowMsg('您的密码错误', 'index.php', 0, 2000);
  183. exit();
  184. } else if ($rs == -2) {
  185. ResetVdValue();
  186. ShowMsg('管理员帐号不允许从前台登录', 'index.php', 0, 2000);
  187. exit();
  188. } else {
  189. //清除会员缓存
  190. $cfg_ml->DelCache($cfg_ml->M_ID);
  191. if (empty($gourl) || preg_match("#action|_do#i", $gourl)) {
  192. ShowMsg('正在登录会员中心,请稍等', 'index.php', 0, 2000);
  193. } else {
  194. $gourl = str_replace('^', '&', $gourl);
  195. ShowMsg('正在前往指定页面,请稍等', $gourl, 0, 2000);
  196. }
  197. exit();
  198. }
  199. }
  200. //退出登录
  201. else if ($dopost == "exit") {
  202. $cfg_ml->ExitCookie();
  203. ShowMsg('已退出会员中心', 'index.php', 0, 2000);
  204. exit();
  205. }
  206. } else if ($fmdo == 'purl'){
  207. require_once(DEDEINC.'/libraries/oxwindow.class.php');
  208. CheckRank(0, 0);//禁止游客操作
  209. $row = $dsql->GetOne("SELECT count(*) as dd FROM `#@__member` WHERE `pmid`='{$cfg_ml->M_ID}' ");
  210. $msg = "<p>您已经邀请了{$row['dd']}人:</p>
  211. <div class='media mb-3'>
  212. <span class='btn btn-primary btn-sm mr-2'>链</span>
  213. <div class='media-body pb-3 border-bottom border-gray'>
  214. <div class='d-flex justify-content-between align-items-center w-100'>
  215. <h5>链接邀请</h5>
  216. <a href='javascript:Copylink()' class='btn btn-outline-primary btn-sm'>复制链接</a>
  217. </div>
  218. <span class='d-block'>复制链接分享给其他人,对方通过链接注册后双方均可获得{$cfg_userad_adds}积分<span id='text' style='font-size:0'>{$cfg_basehost}/user/index_do.php?fmdo=user&dopost=regnew&pid={$cfg_ml->M_LoginID}</span>
  219. </div>
  220. </div>
  221. <div class='media mb-3'>
  222. <span class='btn btn-success btn-sm mr-2'>码</span>
  223. <div class='media-body pb-3 border-bottom border-gray'>
  224. <div class='d-flex justify-content-between align-items-center w-100'>
  225. <h5>二维码邀请</h5>
  226. <a href='javascript:ShowQrcode()' class='btn btn-outline-success btn-sm'>查看二维码</a>
  227. </div>
  228. <span class='d-block'>分享二维码到移动设备,通过二维码扫码注册,双方均可获得{$cfg_userad_adds}积分</span>
  229. </div>
  230. </div>
  231. <div class='text-center'><a href='index.php' class='btn btn-success btn-sm'>返回</a></div>
  232. <div id='qrcode'></div>
  233. <style>.modal-body img{margin:0 auto}#qrcode{display:none;margin:15px auto;width:200px;height:200px}</style>
  234. <script>
  235. var qrcode = new QRCode(document.getElementById(\"qrcode\"), {
  236. width : 200,
  237. height : 200,
  238. correctLevel : 3
  239. });
  240. qrcode.makeCode('{$cfg_basehost}/user/index_do.php?fmdo=user&dopost=regnew&pid={$cfg_ml->M_LoginID}');
  241. </script>
  242. <script>
  243. function Copylink() {
  244. var val = document.getElementById('text');
  245. window.getSelection().selectAllChildren(val);
  246. document.execCommand(\"Copy\");
  247. ShowMsg(\"复制推广链接成功\");
  248. }
  249. function ShowQrcode(){
  250. ShowMsg(document.getElementById('qrcode').innerHTML);
  251. }
  252. </script>";
  253. $wintitle = "快来邀请好友赚积分啦";
  254. $wecome_info = "邀请好友赚积分";
  255. $win = new OxWindow();
  256. $win->AddMsgItem($msg);
  257. $winform = $win->GetWindow("hand", false);
  258. $win->Display(DEDEMEMBER."/templets/win_templet.htm");
  259. exit;
  260. } else {
  261. ShowMsg('操作失败', 'index.php');
  262. }
  263. ?>