`
ljl_xyf
  • 浏览: 632829 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

dedecms会员注册通知各phpbb3添加新用户

阅读更多

dedecms会员注册通知各phpbb3添加新用户,主要看面 dedecms安装目录下member目录下的reg_new.php文件。

其中红色字体是dedecms 用户注册时同时向 phpbb3 论坛添加用户的代码。

 

reg_new.php

<?php
require_once(dirname(__FILE__)."/config.php");
require_once DEDEINC.'/membermodel.cls.php';

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../phpbb/';

$phpEx = substr(strrchr(__FILE__, '.'), 1);
//die( $phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'common.' . $phpEx);

include($phpbb_root_path . 'includes/functions_display.' . $phpEx);


include($phpbb_root_path.'includes/ucp/ucp_register.php');
include($phpbb_root_path.'includes/functions_user.php');
//die( $phpbb_root_path . 'common.' . $phpEx);



if($cfg_mb_allowreg=='N')
{
    ShowMsg('系统关闭了新用户注册!', 'index.php');
    exit();
}


if(!isset($dopost))
{
    $dopost = '';
}
$step = empty($step)? 1 : intval(preg_replace("/[^\d]/",'', $step));

if($step == 1)
{
    if($cfg_ml->IsLogin())
    {
        if($cfg_mb_reginfo == 'Y')
        {
            //如果启用注册详细信息  http://www.my400800.cn
            if($cfg_ml->fields['spacesta'] == 0 || $cfg_ml->fields['spacesta'] == 1)
            {
                 ShowMsg("尚未完成详细资料,请完善...","index_do.php?fmdo=user&dopost=regnew&step=2",0,1000);
                 exit;
            }
        }
        ShowMsg('你已经登陆系统,无需重新注册!', 'index.php');
        exit();
    }
    if($dopost=='regbase')
    {
        $svali = GetCkVdValue();
        if(preg_match("/1/",$safe_gdopen)){
            if(strtolower($vdcode)!=$svali || $svali=='')
            {
                ResetVdValue();
                ShowMsg('验证码错误!', '-1');
                exit();
            }
           
        }
       
        $faqkey = isset($faqkey) && is_numeric($faqkey) ? $faqkey : 0;
        if($safe_faq_reg == '1')
        {
            if($safefaqs[$faqkey]['answer'] != $rsafeanswer || $rsafeanswer=='')
            {
                ShowMsg('验证问题答案错误', '-1');
                exit();
            }
        }
       
        $userid = trim($userid);
        $pwd = trim($userpwd);
        $pwdc = trim($userpwdok);
        $rs = CheckUserID($userid, '用户名');
        if($rs != 'ok')
        {
            ShowMsg($rs, '-1');
            exit();
        }
        if(strlen($userid) > 20 || strlen($uname) > 36)
        {
            ShowMsg('你的用户名或用户笔名过长,不允许注册!', '-1');
            exit();
        }
        if(strlen($userid) < $cfg_mb_idmin || strlen($pwd) < $cfg_mb_pwdmin)
        {
            ShowMsg("你的用户名或密码过短,不允许注册!","-1");
            exit();
        }
        if($pwdc != $pwd)
        {
            ShowMsg('你两次输入的密码不一致!', '-1');
            exit();
        }
       
        $uname = HtmlReplace($uname, 1);
        //用户笔名重复检测
        if($cfg_mb_wnameone=='N')
        {
            $row = $dsql->GetOne("Select * From `#@__member` where uname like '$uname' ");
            if(is_array($row))
            {
                ShowMsg('用户笔名或公司名称不能重复!', '-1');
                exit();
            }
        }
        if(!CheckEmail($email))
        {
            ShowMsg('Email格式不正确!', '-1');
            exit();
        }
       
        #api{{
        if(defined('UC_API') && @include_once DEDEROOT.'/uc_client/client.php')
        {
            $uid = uc_user_register($userid, $pwd, $email);
            if($uid <= 0)
            {
                if($uid == -1)
                {
                    ShowMsg("用户名不合法!","-1");
                    exit();
                }
                elseif($uid == -2)
                {
                    ShowMsg("包含要允许注册的词语!","-1");
                    exit();
                }
                elseif($uid == -3)
                {
                    ShowMsg("你指定的用户名 {$userid} 已存在,请使用别的用户名!","-1");
                    exit();
                }
                elseif($uid == -5)
                {
                    ShowMsg("你使用的Email 不允许注册!","-1");
                    exit();
                }
                elseif($uid == -6)
                {
                    ShowMsg("你使用的Email已经被另一帐号注册,请使其它帐号","-1");
                    exit();
                }
                else
                {
                    ShowMsg("注删失改!","-1");
                    exit();
                }
            }
            else
            {
                $ucsynlogin = uc_user_synlogin($uid);
            }
        }
        #/aip}}
       
        if($cfg_md_mailtest=='Y')
        {
            $row = $dsql->GetOne("Select mid From `#@__member` where email like '$email' ");
            if(is_array($row))
            {
                ShowMsg('你使用的Email已经被另一帐号注册,请使其它帐号!', '-1');
                exit();
            }
        }
   
        //检测用户名是否存在
        $row = $dsql->GetOne("Select mid From `#@__member` where userid like '$userid' ");
        if(is_array($row))
        {
            ShowMsg("你指定的用户名 {$userid} 已存在,请使用别的用户名!", "-1");
            exit();
        }
        if($safequestion==0)
        {
            $safeanswer = '';
        }
        else
        {
            if(strlen($safeanswer)>30)
            {
                ShowMsg('你的新安全问题的答案太长了,请控制在30字节以内!', '-1');
                exit();
            }
        }
   
        //会员的默认金币
        $dfscores = 0;
        $dfmoney = 0;
        $dfrank = $dsql->GetOne("Select money,scores From `#@__arcrank` where rank='10' ");
        if(is_array($dfrank))
        {
            $dfmoney = $dfrank['money'];
            $dfscores = $dfrank['scores'];
        }
        $jointime = time();
        $logintime = time();
        $joinip = GetIP();
        $loginip = GetIP();
        $pwd = md5($userpwd);
       
        $spaceSta = ($cfg_mb_spacesta < 0 ? $cfg_mb_spacesta : 0);
       
        $inQuery = "INSERT INTO `#@__member` (`mtype` ,`userid` ,`pwd` ,`uname` ,`sex` ,`rank` ,`money` ,`email` ,`scores` ,
        `matt`, `spacesta` ,`face`,`safequestion`,`safeanswer` ,`jointime` ,`joinip` ,`logintime` ,`loginip` )
       VALUES ('$mtype','$userid','$pwd','$uname','$sex','10','$dfmoney','$email','$dfscores',
       '0','$spaceSta','','$safequestion','$safeanswer','$jointime','$joinip','$logintime','$loginip'); ";
        if($dsql->ExecuteNoneQuery($inQuery))
        {
            $mid = $dsql->GetLastID();
   
            //写入默认会员详细资料
            if($mtype=='个人'){
                $space='person';
            }else if($mtype=='企业'){
                $space='company';
            }else{
                $space='person';
            }
   
            //写入默认统计数据
            $membertjquery = "INSERT INTO `#@__member_tj` (`mid`,`article`,`album`,`archives`,`homecount`,`pagecount`,`feedback`,`friend`,`stow`)
                   VALUES ('$mid','0','0','0','0','0','0','0','0'); ";
            $dsql->ExecuteNoneQuery($membertjquery);
   
            //写入默认空间配置数据
            $spacequery = "Insert Into `#@__member_space`(`mid` ,`pagesize` ,`matt` ,`spacename` ,`spacelogo` ,`spacestyle`, `sign` ,`spacenews`)
                    Values('{$mid}','10','0','{$uname}的空间','','$space','',''); ";
            $dsql->ExecuteNoneQuery($spacequery);
   
            //写入其它默认数据
            $dsql->ExecuteNoneQuery("INSERT INTO `#@__member_flink`(mid,title,url) VALUES('$mid','织梦内容管理系统','http://www.dedecms.com'); ");
           
            $membermodel = new membermodel($mtype);
            $modid=$membermodel->modid;
            $modid = empty($modid)? 0 : intval(preg_replace("/[^\d]/",'', $modid));
            $modelform = $dsql->getOne("select * from #@__member_model where id='$modid' ");
           
            if(!is_array($modelform))
            {
                showmsg('模型表单不存在', '-1');
                exit();
            }else{
                $dsql->ExecuteNoneQuery("INSERT INTO `{$membermodel->table}` (`mid`) VALUES ('{$mid}');");
            }
           
            //----------------------------------------------
            //模拟登录
            //---------------------------
            $cfg_ml = new MemberLogin(7*3600);
            $rs = $cfg_ml->CheckUser($userid, $userpwd);

           
        //邮件验证
        if($cfg_mb_spacesta==-10)
        {
            $userhash = md5($cfg_cookie_encode.'--'.$mid.'--'.$email);
          $url = $cfg_basehost.(empty($cfg_cmspath) ? '/' : $cfg_cmspath)."/member/index_do.php?fmdo=checkMail&mid={$mid}&userhash={$userhash}&do=1";
          $url = eregi_replace('http://', '', $url);
          $url = 'http://'.eregi_replace('//', '/', $url);
          $mailtitle = "{$cfg_webname}--会员邮件验证通知";
          $mailbody = '';
          $mailbody .= "尊敬的用户[{$uname}],您好:\r\n";
          $mailbody .= "欢迎注册成为[{$cfg_webname}]的会员。\r\n";
          $mailbody .= "要通过注册,还必须进行最后一步操作,请点击或复制下面链接到地址栏访问这地址:\r\n\r\n";
          $mailbody .= "{$url}\r\n\r\n";
          $mailbody .= "Power by http://www.dedecms.com 织梦内容管理系统!\r\n";
     
            $headers = "From: ".$cfg_adminemail."\r\nReply-To: ".$cfg_adminemail;
            if($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server))
            {       
                $mailtype = 'TXT';
                require_once(DEDEINC.'/mail.class.php');
                $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
                $smtp->debug = false;
                $smtp->sendmail($email,$cfg_webname,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
            }
            else
            {
                @mail($email, $mailtitle, $mailbody, $headers);
            }
        }//End 邮件验证
        //phpbb整合
        echo $user->ip;
        $user_row = array(
                    'username'                => $userid,
                    'user_password'            => phpbb_hash($userpwd),
                    'user_email'            => $email,
                    'group_id'                => (int) $group_id,
                    'user_timezone'            => (float) 0,
                    'user_dst'                => $is_dst,
                    'user_lang'                => "zh_cmn_hans",
                    'user_type'                => 0,
                    'user_actkey'            => $user_actkey,
                    'user_ip'                => $user->ip,
                    'user_regdate'            => time(),
                    'user_inactive_reason'    => $user_inactive_reason,
                    'user_inactive_time'    => $user_inactive_time,
                );

                if ($config['new_member_post_limit'])
                {
                    $user_row['user_new'] = 1;
                }
            $user_id = user_add($user_row, $cp_data);
           

           
           
            if($cfg_mb_reginfo == 'Y')
            {
                ShowMsg("完成基本信息的注册,接下来完善详细资料...","index_do.php?fmdo=user&dopost=regnew&step=2",0,1000);
                exit();
          } else {
                require_once(DEDEMEMBER."/templets/reg-new3.htm");
                exit;
          }
           
        }
        else
        {
            ShowMsg("注册失败,请检查资料是否有误或与管理员联系!", "-1");
            exit();
        }
    }
   
    require_once(DEDEMEMBER."/templets/reg-new.htm");
   
}else {
    if(!$cfg_ml->IsLogin())
    {
        ShowMsg("尚未完成基本信息的注册,请返回重新填写!", "index_do.php?fmdo=user&dopost=regnew");
        exit;
    } else {
            if($cfg_ml->fields['spacesta'] == 2)
            {
                 ShowMsg('你已经登陆系统,无需重新注册!', 'index.php');
                 exit;
            }
    }
    $membermodel = new membermodel($cfg_ml->M_MbType);
    $postform = $membermodel->getForm(true);
    if($dopost == 'reginfo')
    {
        //这里完成详细内容填写
        $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);
        $dede_fieldshash = empty($dede_fieldshash) ? '' : trim($dede_fieldshash);
        $modid = empty($modid)? 0 : intval(preg_replace("/[^\d]/",'', $modid));
       
        if(!empty($dede_fields))
        {
            if($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode))
            {
                showMsg('数据校验不对,程序返回', '-1');
                exit();
            }
        }
        $modelform = $dsql->getOne("select * from #@__member_model where id='$modid' ");
        if(!is_array($modelform))
        {
            showmsg('模型表单不存在', '-1');
            exit();
        }
       
        $inadd_f = '';
        if(!empty($dede_fields))
        {
            $fieldarr = explode(';', $dede_fields);
            if(is_array($fieldarr))
            {
                foreach($fieldarr as $field)
                {
                    if($field == '') continue;
                    $fieldinfo = explode(',', $field);
                    if($fieldinfo[1] == 'textdata')
                    {
                        ${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));
                        ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
                    }
                    else
                    {
                        if(empty(${$fieldinfo[0]})) ${$fieldinfo[0]} = '';
                        ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1],0,'add','','diy', $fieldinfo[0]);
                    }
                    if($fieldinfo[0]=="birthday") ${$fieldinfo[0]}=GetDateMk(${$fieldinfo[0]});
                    $inadd_f .= ','.$fieldinfo[0]." ='".${$fieldinfo[0]}."' ";
                }
            }

        }
 
      $query = "UPDATE `{$membermodel->table}` SET `mid`='{$cfg_ml->M_ID}' $inadd_f WHERE `mid`='{$cfg_ml->M_ID}'; ";
      if($dsql->executenonequery($query)){
        $dsql->ExecuteNoneQuery("UPDATE `#@__member` SET `spacesta`='2' WHERE `mid`='{$cfg_ml->M_ID}'");
        require_once(DEDEMEMBER."/templets/reg-new3.htm");
        exit;
      }
    }

    require_once(DEDEMEMBER."/templets/reg-new2.htm");
}



?>

0
2
分享到:
评论

相关推荐

    phpbb3中文语言包

    这款软件支持多语言环境,其中“PHPBB3中文语言包”是专为中文用户设计的本地化版本,旨在提供更友好的中文界面和用户体验。在安装并使用这个语言包后,用户可以更方便地阅读和理解论坛内容,进一步提升中文社区的...

    phpbb3简易论坛代码

    同时,phpbb3内置了防止垃圾邮件、滥用注册和XSS攻击的安全措施。 6. **扩展性与插件支持**:通过Composer(由`composer.json`和`composer.lock`文件管理)可以方便地引入第三方库和插件,扩展论坛功能,例如增加...

    phpbb3论坛程序

    1. **多语言支持**:`phpBB3` 支持多种语言,允许用户根据需求选择合适的语言环境,这使得它在全球范围内具有广泛的适用性。 2. **安全与稳定**:`phpBB3` 团队定期发布安全更新和补丁,确保论坛免受黑客攻击,同时...

    phpbb3_Calendar_0sfik3_phpbb3_源码

    在实际应用中,PHPBB3的Calendar模块可广泛应用于社区论坛、学校公告、公司内部通知等多个场景。通过合理利用其API和插件系统,可以打造出功能丰富的日程管理平台。 总结,PHPBB3的Calendar模块是PHPBB3论坛的重要...

    phpbb3_Calendar_qdgnwg_phpbb3_

    【标题】"phpbb3_Calendar_qdgnwg_phpbb3_" 指的是一个基于PHPBB3论坛系统的日历模块。PHPBB3是一个流行的开源论坛软件,它使用PHP编程语言开发,支持MySQL等数据库系统,广泛应用于创建在线社区。这个特定的模块...

    phpbb3_Calendar_2m0pyw_phpbb3_

    【phpbb3_Calendar_2m0pyw_phpbb3_】这个标题表明我们讨论的是一个与PHPBB3论坛系统相关的日历模块。PHPBB3是一款开源的、基于PHP的论坛软件,它允许用户创建和管理在线社区。日历功能是论坛的一个重要组成部分,它...

    phpbb3_Calendar_mrfdmj_phpbb3_

    标题中的"phpbb3_Calendar_mrfdmj_phpbb3_"暗示了我们正在处理的是与PHPBB3论坛系统相关的日历模块。PHPBB3是一款开源的、基于PHP的讨论板软件,广泛用于创建在线社区。"Calendar"部分指出,这个主题是关于PHPBB3中...

    phpbb3防垃圾帖代码

    "phpbb3防垃圾帖代码"是针对phpBB3.0论坛系统的一个增强安全性的功能模块,它通过引入加法算式验证,增加了发布帖子的门槛,有效阻止了自动机器人或恶意用户批量发送垃圾信息。这个功能的工作原理是:当用户尝试发表...

    PHPBB论坛2.0用户手册中文版

    3. **用户注册与使用**:包括用户如何注册账户、修改个人信息、发帖、回帖、私信、收藏、订阅等基本操作,以及如何设置头像、签名等个性化设置。 4. **模板与样式**:讲解如何自定义论坛的外观,包括修改CSS样式、...

    phpBB v3.2.2 正體中文.zip

    [PHPBB3-15060] - 在线用户列表在通知上失败; [PHPBB3-15089] - 为Cookie安全启用/禁用设置; [PHPBB3-15133] - 快速图像大小的库有时不会返回大小或无效的大小; [PHPBB3-15149] - 意外的Ctrl Enter回复行为; ...

    phpbb3_Calendar_0ktrcg_phpbb3_

    "phpbb3_Calendar_0ktrcg_phpbb3_"这个标题暗示我们正在讨论的是PHPBB3的一个特定模块或插件,可能是关于日历功能的。日历功能在论坛中通常用于发布活动、会议或者纪念日等,让用户可以查看并参与讨论相关事件。 ...

    phpbb3_Calendar_gn44b4_phpbb3_源码

    phpBB3是一款非常流行且功能强大的讨论区软件,它允许用户创建论坛、讨论话题、管理用户和进行社区互动。这个特定的模块“Calendar”则是对phpBB3原生功能的补充,提供了事件管理和日程安排的功能。 在phpBB3中,...

    phpbb论坛MOD插件库

    此hack是当你选择管理员激活帐号模式时,用户注册后发给管理员审核的信件中加入一查看会员信息的连接。 User_posts editor 此hack 在admin_user 版面里面加入增加加或者减少用户发贴数量的功能。 Validate E-Mail...

    phpBB论坛 3.0

    通常,新注册用户需经过邮箱验证或管理员审核。 3. **主题与帖子**:用户可以创建新的主题,发表帖子,参与讨论。管理员和版主可以进行管理,如移动、合并、锁定话题。 4. **搜索功能**:内置强大的搜索工具,帮助...

    phpbb-安装程序

    5. **通知与提醒**: 用户可以订阅主题,当有新帖子时,他们会收到电子邮件或站内消息通知。 6. **插件与扩展**: phpBB有一个活跃的开发者社区,提供了大量插件和模板,用于增强论坛的功能和外观。 7. **多语言支持...

    phpBB论坛管理教程

    ### phpBB论坛管理教程知识点概览 #### 一、phpBB管理员控制面板 - **简介**:新版phpBB提供了一个高度可配置的管理员控制面板(ACP),它允许管理员轻松地调整几乎所有功能。管理员可以通过点击论坛底部的“管理...

    phpBB3论坛

    1. **用户界面**:phpBB3具有清晰的用户界面,提供多种主题和布局选择,可以根据用户需求定制论坛外观。 2. **权限管理**:系统内建了完善的权限控制系统,管理员可以对用户组或特定用户进行细致的权限设置,如发帖...

Global site tag (gtag.js) - Google Analytics