本文主要内容
重新写discuz的注册接口
从原系统进入论坛自动注册并登录
咔咔之前没有使用过discuz,本文只是我自己的解决方案,要是有更好的实现方式可以一起交流交流
先看看系统本来的注册源码
点击注册后请求的是upload/member.php 这个文件
接着对请求的register进行验证
然后就会去加载
./source/module/member/member_'.$mod.'.php
mod就是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',array('username' => $username));}showmessage('网络错误','http://localhost/forum/upload/?mobile=2');}}}}
测试
可以看到现在是一个退出状态
点击登录
然后就实现了用户从原系统对接到论坛自动注册和登录
原文地址:https://blog.csdn.net/fangkang7
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。