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

274 lines
11KB

  1. <?php
  2. /**
  3. * @version $Id: reg_new.php 1 8:38 2010年7月9日Z tianya $
  4. * @package DedeCMS.Member
  5. * @copyright Copyright (c) 2007 - 2020, DesDev, Inc.
  6. * @copyright Copyright (c) 2020, DedeBIZ.COM
  7. * @license http://help.dedecms.com/usersguide/license.html
  8. * @link http://www.dedecms.com
  9. */
  10. require_once(dirname(__FILE__) . "/config.php");
  11. if ($cfg_mb_allowreg == 'N') {
  12. ShowMsg('系统关闭了新用户注册!', 'index.php');
  13. exit();
  14. }
  15. if (!isset($dopost)) $dopost = '';
  16. $step = empty($step) ? 1 : intval($step);
  17. if ($step == 1) {
  18. if ($cfg_ml->IsLogin()) {
  19. if ($cfg_mb_reginfo == 'Y') {
  20. //如果启用注册详细信息
  21. if ($cfg_ml->fields['spacesta'] == 0 || $cfg_ml->fields['spacesta'] == 1) {
  22. ShowMsg("尚未完成详细资料,请完善...", "index_do.php?fmdo=user&dopost=regnew&step=2", 0, 1000);
  23. exit;
  24. }
  25. }
  26. ShowMsg('你已经登录系统,无需重新注册!', 'index.php');
  27. exit();
  28. }
  29. if ($dopost == 'regbase') {
  30. $svali = GetCkVdValue();
  31. if (preg_match("/1/", $safe_gdopen)) {
  32. if (strtolower($vdcode) != $svali || $svali == '') {
  33. ResetVdValue();
  34. ShowMsg('验证码错误!', '-1');
  35. exit();
  36. }
  37. }
  38. // $faqkey = isset($faqkey) && is_numeric($faqkey) ? $faqkey : 0;
  39. // if($safe_faq_reg == '1')
  40. // {
  41. // if($safefaqs[$faqkey]['answer'] != $rsafeanswer || $rsafeanswer=='')
  42. // {
  43. // ShowMsg('验证问题答案错误', '-1');
  44. // exit();
  45. // }
  46. // }
  47. $userid = $uname = trim($userid);
  48. $pwd = trim($userpwd);
  49. $pwdc = trim($userpwdok);
  50. $rs = CheckUserID($userid, '用户名');
  51. if ($rs != 'ok') {
  52. ShowMsg($rs, '-1');
  53. exit();
  54. }
  55. if (strlen($userid) > 20 || strlen($uname) > 36) {
  56. ShowMsg('你的用户名或用户笔名过长,不允许注册!', '-1');
  57. exit();
  58. }
  59. if (strlen($userid) < $cfg_mb_idmin || strlen($pwd) < $cfg_mb_pwdmin) {
  60. ShowMsg("你的用户名或密码过短,不允许注册!", "-1");
  61. exit();
  62. }
  63. if ($pwdc != $pwd) {
  64. ShowMsg('你两次输入的密码不一致!', '-1');
  65. exit();
  66. }
  67. $uname = HtmlReplace($uname, 1);
  68. // //用户笔名重复检测
  69. // if($cfg_mb_wnameone=='N')
  70. // {
  71. // $row = $dsql->GetOne("SELECT * FROM `#@__member` WHERE uname LIKE '$uname' ");
  72. // if(is_array($row))
  73. // {
  74. // ShowMsg('用户笔名或公司名称不能重复!', '-1');
  75. // exit();
  76. // }
  77. // }
  78. // if(!CheckEmail($email))
  79. // {
  80. // ShowMsg('Email格式不正确!', '-1');
  81. // exit();
  82. // }
  83. // if($cfg_md_mailtest=='Y')
  84. // {
  85. // $row = $dsql->GetOne("SELECT mid FROM `#@__member` WHERE email LIKE '$email' ");
  86. // if(is_array($row))
  87. // {
  88. // ShowMsg('你使用的Email已经被另一帐号注册,请使其它帐号!', '-1');
  89. // exit();
  90. // }
  91. // }
  92. //检测用户名是否存在
  93. $row = $dsql->GetOne("SELECT mid FROM `#@__member` WHERE userid LIKE '$userid' ");
  94. if (is_array($row)) {
  95. ShowMsg("你指定的用户名 {$userid} 已存在,请使用别的用户名!", "-1");
  96. exit();
  97. }
  98. // if($safequestion==0)
  99. // {
  100. // $safeanswer = '';
  101. // }
  102. // else
  103. // {
  104. // if(strlen($safeanswer)>30)
  105. // {
  106. // ShowMsg('你的新安全问题的答案太长了,请控制在30字节以内!', '-1');
  107. // exit();
  108. // }
  109. // }
  110. //会员的默认金币
  111. $dfscores = 0;
  112. $dfmoney = 0;
  113. $dfrank = $dsql->GetOne("SELECT money,scores FROM `#@__arcrank` WHERE rank='10' ");
  114. if (is_array($dfrank)) {
  115. $dfmoney = $dfrank['money'];
  116. $dfscores = $dfrank['scores'];
  117. }
  118. $jointime = time();
  119. $logintime = time();
  120. $joinip = GetIP();
  121. $loginip = GetIP();
  122. $pwd = md5($userpwd);
  123. $mtype = '个人';
  124. $spaceSta = ($cfg_mb_spacesta < 0 ? $cfg_mb_spacesta : 0);
  125. $inQuery = "INSERT INTO `#@__member` (`mtype` ,`userid` ,`pwd` ,`uname` ,`sex` ,`rank` ,`money` ,`email` ,`scores` ,
  126. `matt`, `spacesta` ,`face`,`safequestion`,`safeanswer` ,`jointime` ,`joinip` ,`logintime` ,`loginip` )
  127. VALUES ('$mtype','$userid','$pwd','$uname','','10','$dfmoney','','$dfscores',
  128. '0','$spaceSta','','','','$jointime','$joinip','$logintime','$loginip'); ";
  129. if ($dsql->ExecuteNoneQuery($inQuery)) {
  130. $mid = $dsql->GetLastID();
  131. //写入默认会员详细资料
  132. if ($mtype == '个人') {
  133. $space = 'person';
  134. } else if ($mtype == '企业') {
  135. $space = 'company';
  136. } else {
  137. $space = 'person';
  138. }
  139. //写入默认统计数据
  140. $membertjquery = "INSERT INTO `#@__member_tj` (`mid`,`article`,`album`,`archives`,`homecount`,`pagecount`,`feedback`,`friend`,`stow`)
  141. VALUES ('$mid','0','0','0','0','0','0','0','0'); ";
  142. $dsql->ExecuteNoneQuery($membertjquery);
  143. //写入默认空间配置数据
  144. $spacequery = "INSERT INTO `#@__member_space`(`mid` ,`pagesize` ,`matt` ,`spacename` ,`spacelogo` ,`spacestyle`, `sign` ,`spacenews`)
  145. VALUES('{$mid}','10','0','{$uname}的空间','','$space','',''); ";
  146. $dsql->ExecuteNoneQuery($spacequery);
  147. //写入其它默认数据
  148. $dsql->ExecuteNoneQuery("INSERT INTO `#@__member_flink`(mid,title,url) VALUES('$mid','织梦内容管理系统','http://www.dedecms.com'); ");
  149. //----------------------------------------------
  150. //模拟登录
  151. //---------------------------
  152. $cfg_ml = new MemberLogin(7 * 3600);
  153. $rs = $cfg_ml->CheckUser($userid, $userpwd);
  154. // //邮件验证
  155. // if($cfg_mb_spacesta==-10)
  156. // {
  157. // $userhash = md5($cfg_cookie_encode.'--'.$mid.'--'.$email);
  158. // $url = $cfg_basehost.(empty($cfg_cmspath) ? '/' : $cfg_cmspath)."/member/index_do.php?fmdo=checkMail&mid={$mid}&userhash={$userhash}&do=1";
  159. // $url = preg_replace("#http:\/\/#i", '', $url);
  160. // $url = 'http://'.preg_replace("#\/\/#", '/', $url);
  161. // $mailtitle = "{$cfg_webname}--会员邮件验证通知";
  162. // $mailbody = '';
  163. // $mailbody .= "尊敬的用户[{$uname}],您好:\r\n";
  164. // $mailbody .= "欢迎注册成为[{$cfg_webname}]的会员。\r\n";
  165. // $mailbody .= "要通过注册,还必须进行最后一步操作,请点击或复制下面链接到地址栏访问这地址:\r\n\r\n";
  166. // $mailbody .= "{$url}\r\n\r\n";
  167. // $mailbody .= "Power by http://www.dedecms.com 织梦内容管理系统!\r\n";
  168. // $headers = "From: ".$cfg_adminemail."\r\nReply-To: ".$cfg_adminemail;
  169. // if($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server))
  170. // {
  171. // $mailtype = 'TXT';
  172. // require_once(DEDEINC.'/mail.class.php');
  173. // $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
  174. // $smtp->debug = false;
  175. // $smtp->sendmail($email,$cfg_webname,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
  176. // }
  177. // else
  178. // {
  179. // @mail($email, $mailtitle, $mailbody, $headers);
  180. // }
  181. // }//End 邮件验证
  182. if ($cfg_mb_reginfo == 'Y' && $spaceSta >= 0) {
  183. ShowMsg("完成基本信息的注册,接下来完善详细资料...", "index_do.php?fmdo=user&dopost=regnew&step=2", 0, 1000);
  184. exit();
  185. } else {
  186. require_once(DEDEMEMBER . "/templets/reg-new3.htm");
  187. exit;
  188. }
  189. } else {
  190. ShowMsg("注册失败,请检查资料是否有误或与管理员联系!", "-1");
  191. exit();
  192. }
  193. }
  194. require_once(DEDEMEMBER . "/templets/reg-new.htm");
  195. } else {
  196. if (!$cfg_ml->IsLogin()) {
  197. ShowMsg("尚未完成基本信息的注册,请返回重新填写!", "index_do.php?fmdo=user&dopost=regnew");
  198. exit;
  199. } else {
  200. if ($cfg_ml->fields['spacesta'] == 2) {
  201. ShowMsg('你已经登录系统,无需重新注册!', 'index.php');
  202. exit;
  203. }
  204. }
  205. if ($dopost == 'reginfo') {
  206. //这里完成详细内容填写
  207. $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);
  208. $dede_fieldshash = empty($dede_fieldshash) ? '' : trim($dede_fieldshash);
  209. $modid = empty($modid) ? 0 : intval($modid);
  210. if (!empty($dede_fields)) {
  211. if ($dede_fieldshash != md5($dede_fields . $cfg_cookie_encode)) {
  212. showMsg('数据校验不对,程序返回', '-1');
  213. exit();
  214. }
  215. }
  216. $modelform = $dsql->GetOne("SELECT * FROM `#@__member_model` WHERE id='$modid' ");
  217. if (!is_array($modelform)) {
  218. showmsg('模型表单不存在', '-1');
  219. exit();
  220. }
  221. $inadd_f = '';
  222. if (!empty($dede_fields)) {
  223. $fieldarr = explode(';', $dede_fields);
  224. if (is_array($fieldarr)) {
  225. foreach ($fieldarr as $field) {
  226. if ($field == '') continue;
  227. $fieldinfo = explode(',', $field);
  228. if ($fieldinfo[1] == 'textdata') {
  229. ${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));
  230. ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
  231. } else {
  232. if (empty(${$fieldinfo[0]})) ${$fieldinfo[0]} = '';
  233. ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1], 0, 'add', '', 'diy', $fieldinfo[0]);
  234. }
  235. if ($fieldinfo[0] == "birthday") ${$fieldinfo[0]} = GetDateMk(${$fieldinfo[0]});
  236. $inadd_f .= ',' . $fieldinfo[0] . " ='" . ${$fieldinfo[0]} . "' ";
  237. }
  238. }
  239. }
  240. if ($dsql->executenonequery($query)) {
  241. $dsql->ExecuteNoneQuery("UPDATE `#@__member` SET `spacesta`='2' WHERE `mid`='{$cfg_ml->M_ID}'");
  242. // 清除缓存
  243. $cfg_ml->DelCache($cfg_ml->M_ID);
  244. require_once(DEDEMEMBER . "/templets/reg-new3.htm");
  245. exit;
  246. }
  247. }
  248. require_once(DEDEMEMBER . "/templets/reg-new2.htm");
  249. }