Discuz   发布时间:2022-05-06  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了【Discuz】原系统进入论坛自动注册并进行登录大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

本文主要内容重新写discuz的注册接口从原系统进入论坛自动注册并登录咔咔之前没有使用过discuz,本文只是我自己的解决方案,要是有更好的实现方式可以一起交流交流先看看系统本来的注册源码点击注册后请求的是upload/member.php 这个文件接着对请求的register进行验证然后就会去加载./source/module/member/member_'.$mod.'...

先看看系统本来注册源码

  • 点击注册后请求的是upload/member.PHP 这个文件
  • 接着对请求的register进行验证
  • 然后就会去加载./source/module/member/member_'.$mod.'.PHP
  • @H_126_17@mod就是register

【Discuz】原系统进入论坛自动注册并进行登录

  • 接着就会进入到upload/source/module/member/member_register.PHP
  • 可以看到实例化了一个register_ctl类
  • 然后调用了on_register方法

【Discuz】原系统进入论坛自动注册并进行登录

实现原系统进入论坛自动注册登录

  • 实现步骤
  • 不管在文档还是查资料都可以知道用户注册用的是upload/uc_client/client.PHP 这个里边的uc_user_register这个方法
  • uc_user_register这个方法会把用户信息存到pre_ucenter_members这个表里
  • 然后还需要一次同步数据到pre_common_member这个表里
  • 知道了以上写这个就很简单了
  • 以下是实现代码,暂且还没有连接原系统的数据库做了一个假数据来测试
   function on_login ()
    {
        $data     = ['username' => 'kaka', 'u_oripassword' => 123456];
        $username = $data['username'];
        # 根据token查询用户信息
        $members = DB::fetch_all("SELEct * from pre_common_member where username = '$username' limit 1");
        $member = empty($members[0]) ? '' : $members[0];
        if($members){
            setloginstatus($member,315360000);
            showmessage('login_succeed', 'forum.PHP',array('username' => $username));
        }else{
            $uid = uc_user_register($data['username'], $data['u_oripassword'], $email = '');
            if ($uid > 0) {
                # 然后根据用户信息在  pre_ucenter_members  表根据用户名进行查询
                $uc_members = DB::fetch_all("SELEct * from pre_ucenter_members where username = '$username' limit 1");
                if($uc_members){
                    # 注册登录  同步用户
                    $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);
                        setloginstatus($member,315360000);
                        showmessage('login_succeed',array('username' => $username));
                    }
                    showmessage('网络错误','http://localhost/forum/upload/?mobile=2');
                }
            }
        }
    }

测试

可以看到现在是一个退出状态

【Discuz】原系统进入论坛自动注册并进行登录


点击登录

【Discuz】原系统进入论坛自动注册并进行登录


然后就实现了用户从原系统对接到论坛自动注册登录

【Discuz】原系统进入论坛自动注册并进行登录

博主联系方式欢迎交流

【Discuz】原系统进入论坛自动注册并进行登录

大佬总结

以上是大佬教程为你收集整理的【Discuz】原系统进入论坛自动注册并进行登录全部内容,希望文章能够帮你解决【Discuz】原系统进入论坛自动注册并进行登录所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: