zoukankan      html  css  js  c++  java
  • Discuz!用户注册,登陆,生成帖子功能实现

    <?php 
    
    /*
     * Disucz!部分功能使用说明:
     */
     
     /********************************************************************** 用户注册 ***************************************************************************/
     /* uc_user_register接口只是把用户数据验证后插入到pre_ucenter_members表中
      * 所以需要手动将数据同步到pre_common_member表中
      */
     if(!function_exists('uc_user_register')) {  loaducenter(); }
        $uid = uc_user_register($nickname,$password,$email,'你的昵称加什么?',$nickname);
        if($uid > 0){
            //同步用户
            $uc_members = DB::fetch_all("select * from pre_ucenter_members where email = '$email' limit 1");
            $uc_members = empty($uc_members[0]) ? '' : $uc_members[0];
            if(!empty($uc_members)){
                $com_mem_data = array('email'=>$uc_members['email'],'username'=>$uc_members['username'],'password'=>$uc_members['password'],'groupid'=>$define_group_id,'regdate'=>$uc_members['regdate'],'timeoffset'=>9999);
                DB::insert('common_member',$com_mem_data);
            }
        }else{
            if($uid == -1) {
                die(json_encode(array('status'=>0,'msg'=>'用户名不合法')));
            } elseif($uid == -2) {
                die(json_encode(array('status'=>0,'msg'=>'包含要允许注册的词语')));
            } elseif($uid == -3) {
                die(json_encode(array('status'=>0,'msg'=>'用户名已经存在')));
            } elseif($uid == -4) {
                die(json_encode(array('status'=>0,'msg'=>'Email 格式有误')));
            } elseif($uid == -5) {
                die(json_encode(array('status'=>0,'msg'=>'Email 不允许注册')));
            } elseif($uid == -6) {
                die(json_encode(array('status'=>0,'msg'=>'该 Email 已经被注册')));
            } else{
                die(json_encode(array('status'=>0,'msg'=>'注册失败')));
            }
        }
        
        /*************************************************************** 用户登陆 ********************************************************************************/
        /* 使用setloginstatus函数登陆,
         * 接受两个参数,pre_common_member用户记录,和记录cookie的时间
         */
        $members = DB::fetch_all("select * from pre_common_member where email = '$email' limit 1");
        $member = empty($members[0]) ? '' : $members[0];
        if( !empty($member) ){
            //登陆成功,设置cookie,记录cookie 10年
            setloginstatus($member,315360000);
            die(json_encode(array('status'=>1,'msg'=>'登录成功')));
        }else{
            die(json_encode(array('status'=>0,'msg'=>'登录失败')));
        }
        
        /**************************************************************** 生成帖子 *******************************************************************************/
        /* 生成帖子流程:
         * 1、从pre_forum_post_tableid获取生成帖子的tid
         * 2、构造pre_forum_thread表中数据,并插入到pre_forum_thread表中。pre_forum_thread表中数据保存帖子概要信息,用于显示帖子列表
         * 3、构造pre_forum_post表中数据,并插入到pre_forum_post表中。pre_forum_post表中保存帖子的详情信息。无论是帖子,还是回复都是一条独立的pre_forum_post记录
         */
        $pid = C::t('forum_post_tableid')->insert(array('pid' => null), true);
        $thread_data = array(
            'tid'=>$pid,                    //主题id
            'fid'=>37,                        //栏目id
            'author'=>$post_author,            //作者    
            'authorid'=>$uid,                //作者uid,是pre_common_member表中uid
            'subject'=>$title,                //标题
            'dateline'=>time(),
            'lastpost'=>time(),
            'lastposter'=>$post_author,
            'status'=>32                    //状态
        );
        if( DB::insert('forum_thread',$thread_data) ){
            //帖子内容
            $message = "<div>test";$message .= "</div>";
            $post_data = array(
                'pid'=>$pid,                            //帖子id
                'fid'=>37,                                //栏目id
                'tid'=>$pid,                            //主题id
                'first'=>1,                                //是否第一层
                'author'=>$post_author,                    //作者
                'authorid'=>$uid,                        //作者uid
                'subject'=>$title,                        //标题
                'dateline'=>time(),
                'message'=>htmlspecialchars($message),    //内容
                'useip'=>$_G['clientip'],
                'port'        => '',
                'usesig'    => 1,
                'bbcodeoff'    => '-1',
                'smileyoff'    => '-1',
                'tags'        => '',
                'position'    => 1,                        //楼层数
                'type'        => 1,
                'sort_order'    => 2,
                'list_content' => ''
            );
            if( DB::insert('forum_post',$post_data) ){
                //生成帖子成功
                die(json_encode(array('status'=>1,'msg'=>$pid)));
            }else{
                die(json_encode(array('status'=>1,'msg'=>'生成帖子失败')));
            }
        }else{
            die(json_encode(array('status'=>-1,'msg'=>'生成帖子失败')));
        }
    ?>
        
  • 相关阅读:
    电商第一季函数笔记(1)
    沈逸老师PHP魔鬼特训笔记(2)
    PHP读书笔记(3)-常量
    2015/8/9 到家了,学完了CodeCademy的Python
    2015/8/4 告别飞思卡尔,抛下包袱上路
    2015/6/23 浪潮过去,我才来
    方维团购系统二次开发,项目经验
    方维团购系统整合云短信网短信平台,方维系统整合短信平台
    方维团购系统,下订单保存多个收货地址
    PHP木马查杀文件,木马查杀插件
  • 原文地址:https://www.cnblogs.com/pandang/p/4980183.html
Copyright © 2011-2022 走看看