登录  /  注册
首页 > CMS教程 > Discuz > 正文

discuz如何实现自动注册登录

咔咔
发布: 2020-05-03 21:38:34
原创
4497人浏览过

本文实现功能:

    1.从原有系统进入论坛自动登录和注册

    2.实现弹框在本页面,不进行跳转

    3.js在页面加载时直接发起注册请求

这个功能之前使用的uc_user_register这个函数来处理的,但是今天在开发用户空间时就会出现问题。

项目需求

在我们原有的系统上添加一个论坛,但是用户信息需要共享。

实现方法:在进入论坛时带上原有系统的用户信息,然后论坛那边拿到信息直接注册即可。

从原有系统进入论坛自动注册登录

准备一个这样的一个缓冲页面,放到upload/template/default/touch/member/register.htm的页面中

图片.png

然后我们需要把原有注册代码也需要放到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(&#39;&&#39;, &#39;&&#39;, dreferer());}-->
   <input type="hidden" id="referer" name="referer" value="$dreferer" />
   <input type="hidden" name="activationauth" value="{if $_GET[action] == &#39;activation&#39;}$activationauth{/if}" />
   <input type="hidden" name="agreebbrule" value="$bbrulehash" id="agreebbrule" checked="checked" />
   <!--{if $_G[&#39;setting&#39;][&#39;sendregisterurl&#39;]}-->
   <input type="hidden" name="hash" value="$_GET[hash]" />
   <!--{/if}-->
   <!--{if $secqaacheck || $seccodecheck}-->
   <!--{subtemplate common/seccheck}-->
   <!--{/if}-->
   </div>
</form>
登录后复制

然后我们需要在页面加载时直接发情请求,添加下面代码即可。

实现弹框在本页面,不进行跳转,加载时直接发起注册请求

这段js代码实现的功能:在页面加载时直接发起注册请求,然后返回信息,直接在本页面显示,而非跳转到另一个页面

<script>
    var hash = $(&#39;#hash&#39;).val();
    var referer = $(&#39;#referer&#39;).val();
    $.ajax({
        type:&#39;POST&#39;,
        url:"member.php?mod={$_G[setting][regname]}&mobile=2" +&#39;&inajax=1&#39;,
        data:{
            "handlekey":"registerform",
            "inajax" : 1,
            "regsubmit" :"yes",
            "formhash":hash,
            "referer" :referer
        },
        dataType:&#39;xml&#39;
    })
        .success(function(s) {
            popup.open(s.lastChild.firstChild.nodeValue);
            evalscript(s.lastChild.firstChild.nodeValue);
        })
        .error(function() {
            window.location.href = obj.attr(&#39;href&#39;);
            popup.close();
        });
</script>
登录后复制

这个时候还需要最后一步的就是从原系统用什么形势来传过来。这个方式这里就不提供了,我做一个模拟的数据。

在upload/source/module/member/member_register.php   方法 on_register里边根据注释添加自己的代码即可

图片.png

测试效果

我们注册一个ceshi123的账号

图片.png

测试发帖

图片.png

为什么不使用uc_user_register这个方法来注册用户的原因

如果使用了uc_user_register来直接注册用户,就会导致下面的信息全部获取不到

图片.png

以上就是discuz如何实现自动注册登录的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号