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

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

本文主要内容

  • 重新写discuz的注册接口
  • 从原系统进入论坛自动注册并登录

咔咔之前没有使用过discuz,本文只是我自己的解决方案,要是有更好的实现方式可以一起交流交流

先看看系统本来的注册源码

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

屏幕快照 2022-05-19 下午5.15.19.png


  • 到了upload/source/class/class_member.php这个文件就可以看到注册,登录,退出等等接口
  • 因为本案例需要实现的是不可在论坛系统上注册
  • 也就是说原系统的用户进入论坛后自动注册,并且登录
  • 为了保证数据不错乱把注册接口直接给干掉,然后重写一个登录接口接口
  • 实现原系统进入论坛自动注册和登录

  • 实现步骤
  • 不管在文档还是查资料都可以知道用户注册用的是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', 'forum.php',array('username' => $username));
                    }
                    showmessage('网络错误','http://localhost/forum/upload/?mobile=2');
                }
            }
        }
    }

屏幕快照 2022-05-19 下午5.16.07.png


屏幕快照 2022-05-19 下午5.16.16.png

相关文章
|
数据库
Discuz! X3.5 登录不了管理后台的处理方法集合
1. 取消IP认证。由于Discuz!论坛会认证IP,不允许不同IP地址同时登录后台,所以取消IP认证即可。修改方法:在网站根目录,Discuz!配置文件config目录下config_global.php 中找到如下代码:$_config[‘admincp’][‘checkip’] = 1把代码中“1”改成“0”。(修改后允许多IP同时登录后台,所以论坛的安全系数会降低)
859 0
Discuz! X3.5 登录不了管理后台的处理方法集合
|
10天前
|
JavaScript 数据安全/隐私保护
Discuz! X3.5 注册页面提示语的修改方法
Discuz! X3.5 注册页面提示语的修改方法
42 2
|
前端开发 安全 JavaScript
【web渗透思路】任意账号的注册、登录、重置、查看
【web渗透思路】任意账号的注册、登录、重置、查看
760 0
【web渗透思路】任意账号的注册、登录、重置、查看
|
安全 数据安全/隐私保护
WordPress建站教程:默认WordPress登录入口和修改后台入口
​今天关注六翼开源的一个网友遇到一个问题没办法突破,他在安装WordPress之后不知道WordPress后台登录入口,无法进入后台管理网站和更新文章。下面北京六翼的开发工程师针对“默认WordPress登录入口和修改后台入口”的问题给大家做一下讲解。
WordPress建站教程:默认WordPress登录入口和修改后台入口
|
JavaScript
【Discuz】如何实现自动注册登录
【Discuz】如何实现自动注册登录
501 0
【Discuz】如何实现自动注册登录
推荐一个临时邮箱生成网站,专门用于各种注册用途
推荐一个临时邮箱生成网站,专门用于各种注册用途
640 0
|
Web App开发
阿里云账号注册流程方法(图文教程)
购买阿里云服务器、域名或者其他云产品都需要阿里云账号,而且账号必须实名认证否则购买不了,云吞铺子分享账号注册流程方法及常见问题解答: 阿里云账号注册流程方法 1. 先打开阿里云官网www.aliyun.com 想要拥有阿里云账号有2中方式,一种是新注册账号,另一种可以使用淘宝、1688、微博、支付宝或者钉钉账号登录,如下图所示: 阿里云支持其他账号登录方式,目前支持:淘宝、1688、微博、支付宝或者钉钉账号登录,使用其他账号登录的好处就是账号好记,不用重新注册,如果使用已经通过实名认证的账号登录阿里云,阿里云会自动调用该账号的认证信息,免去实名认证流程。
5958 0
企业登陆阿里云邮箱之后更改设置企业邮箱logo方法简介
阿里云收费企业邮箱支持自定义公司 Logo,用户登陆邮箱之后可自定义邮箱logo,使用户的登陆界面更加专业化。 设置方法:在管理员页面(postmaster账户), 系统设置 > 基本资料设置 > 邮箱logo > logo图片设置选择自定义 >上传对应公司logo图片 ,如下图: 另外还支持自定...
4296 0
|
Web App开发 API PHP
wordpress网站自动推送链接至百度的操作方法
wordpress网站自动推送链接至百度的操作方法有两种方法:在wp后台有一个ping服务。在WordPress后台->撰写->更新服务,将各大搜索引擎ping地址填上即可利用站长工具进行自动提交。这个只需要在站点添加如下这段js代码,建议加在foot.php中。
2875 0