主机论坛_虚拟主机_美国主机_美国虚拟主机_云主机技术_全球主机交流聚集地—Web Hosting Talk 中文站

找回密码
立即注册
发新帖

0

收听

5

听众

1015

主题
发表于 2022-3-18 15:25:02 | 查看: 168| 回复: 0
这篇文章主要介绍discuz实现自动注册登录的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
本文实现功能:
1.从原有系统进入论坛自动登录和注册
2.实现弹框在本页面,不进行跳转
3.js在页面加载时直接发起注册请求

这个功能之前使用的uc_user_register这个函数来处理的,但是今天在开发用户空间时就会出现问题。
项目需求在我们原有的系统上添加一个论坛,但是用户信息需要共享。
实现方法:在进入论坛时带上原有系统的用户信息,然后论坛那边拿到信息直接注册即可。

从原有系统进入论坛自动注册登录准备一个这样的一个缓冲页面,放到upload/template/default/touch/member/register.htm的页面中

然后我们需要把原有注册代码也需要放到upload/template/default/touch/member/register.htm
放这段代码的原因是dsicuz在提交表单时会有很多的参数限制,我们就保持原有不动就行了

<form method="post" autocomplete="off" name="register" id="registerform" action="member.php?mod={$_G[setting][regname]}&mobile=2">   <input type="hidden" name="regsubmit" value="yes" />   <input type="hidden" id="hash" name="formhash" value="{FORMHASH}" />   <!--{eval $dreferer = str_replace('&', '&', dreferer());}-->   <input type="hidden" id="referer" name="referer" value="$dreferer" />   <input type="hidden" name="activationauth" value="{if $_GET[action] == 'activation'}$activationauth{/if}" />   <input type="hidden" name="agreebbrule" value="$bbrulehash" id="agreebbrule" checked="checked" />   <!--{if $_G['setting']['sendregisterurl']}-->   <input type="hidden" name="hash" value="$_GET[hash]" />   <!--{/if}-->   <!--{if $secqaacheck || $seccodecheck}-->   <!--{subtemplate common/seccheck}-->   <!--{/if}-->   </div></form>然后我们需要在页面加载时直接发情请求,添加下面代码即可。
实现弹框在本页面,不进行跳转,加载时直接发起注册请求这段js代码实现的功能:在页面加载时直接发起注册请求,然后返回信息,直接在本页面显示,而非跳转到另一个页面

<script>    var hash = $('#hash').val();    var referer = $('#referer').val();    $.ajax({        type:'POST',        url:"member.php?mod={$_G[setting][regname]}&mobile=2" +'&inajax=1',        data:{            "handlekey":"registerform",            "inajax" : 1,            "regsubmit" :"yes",            "formhash":hash,            "referer" :referer        },        dataType:'xml'    })        .success(function(s) {            popup.open(s.lastChild.firstChild.nodeValue);            evalscript(s.lastChild.firstChild.nodeValue);        })        .error(function() {            window.location.href = obj.attr('href');            popup.close();        });</script>这个时候还需要最后一步的就是从原系统用什么形势来传过来。这个方式这里就不提供了,我做一个模拟的数据。
在upload/source/module/member/member_register.php  方法 on_register里边根据注释添加自己的代码即可

测试效果我们注册一个ceshi123的账号

测试发帖

为什么不使用uc_user_register这个方法来注册用户的原因
如果使用了uc_user_register来直接注册用户,就会导致下面的信息全部获取不到

以上是discuz实现自动注册登录的方法的所有内容,感谢各位的阅读!
SD-WAN-MPLS组网http://www.kd010.com/

收藏回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|WebHostingTalk中文站

GMT+8, 2024-5-17 10:13 , Processed in 0.068381 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表