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

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