900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 【Discuz】原系统进入论坛自动注册并进行登录

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

时间:2021-12-25 03:55:53

相关推荐

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

本文主要内容

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

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

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

点击注册后请求的是upload/member.php 这个文件接着对请求的register进行验证然后就会去加载./source/module/member/member_'.$mod.'.phpmod就是register 接着就会进入到upload/source/module/member/member_register.php可以看到实例化了一个register_ctl类然后调用了on_register方法 到了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');}}}}

测试

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

点击登录

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

博主联系方式欢迎交流

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。