【Discuz】如何实现自动注册登录

简介: 【Discuz】如何实现自动注册登录

本文实现功能:

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

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

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

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


项目需求

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


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


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

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

image.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('&amp;', '&', 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里边根据注释添加自己的代码即可

image.png


测试效果

我们注册一个ceshi123的账号

image.png

测试发帖

image.png


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

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

image.png

相关文章
|
8月前
|
SQL 前端开发 JavaScript
|
数据库
Discuz! X3.5 登录不了管理后台的处理方法集合
1. 取消IP认证。由于Discuz!论坛会认证IP,不允许不同IP地址同时登录后台,所以取消IP认证即可。修改方法:在网站根目录,Discuz!配置文件config目录下config_global.php 中找到如下代码:$_config[‘admincp’][‘checkip’] = 1把代码中“1”改成“0”。(修改后允许多IP同时登录后台,所以论坛的安全系数会降低)
657 0
Discuz! X3.5 登录不了管理后台的处理方法集合
|
1月前
|
存储 PHP Apache
使用CFimagehost源码搭建无需数据库支持的PHP免费图片托管私人图床
使用CFimagehost源码搭建无需数据库支持的PHP免费图片托管私人图床
原生php实现大案例(特色:不登录不能使用功能 注册 登录 文件上传 发帖 列表页 详情页 )提供sql
原生php实现大案例(特色:不登录不能使用功能 注册 登录 文件上传 发帖 列表页 详情页 )提供sql
|
安全 数据安全/隐私保护
WordPress建站教程:默认WordPress登录入口和修改后台入口
​今天关注六翼开源的一个网友遇到一个问题没办法突破,他在安装WordPress之后不知道WordPress后台登录入口,无法进入后台管理网站和更新文章。下面北京六翼的开发工程师针对“默认WordPress登录入口和修改后台入口”的问题给大家做一下讲解。
WordPress建站教程:默认WordPress登录入口和修改后台入口
|
SQL 前端开发 Java
Java开发:实现用户注册登录的功能
在Java开发过程中,实现用户的注册功能是最基本的,用户通过手机号或者邮箱作为注册账号也是非常常见的操作方式,不管是通过手机号注册或者邮箱注册,原理都差不多,那么本文就来分享一下在Java开发过程中的用户注册账号的功能实现。
299 0
Java开发:实现用户注册登录的功能
|
PHP 数据库
【Discuz】原系统进入论坛自动注册并进行登录
【Discuz】原系统进入论坛自动注册并进行登录
286 0
【Discuz】原系统进入论坛自动注册并进行登录
|
存储 自然语言处理 前端开发
从WordPress切换到Joomla的10个理由
许多Web开发人员几年前离开Joomla,而是选择了Wordpress。目前,WordPress是世界上最受欢迎的内容管理系统。它起初只是一个专门用于博客的平台,但在过去几年中有了很大的发展和进步。作为拥有数百万安装量的同类领先软件,WP通常是黑客和垃圾邮件机器人的目标。Joomla和WordPress都为那些希望创建网站的人提供许多优势,功能,灵活性和易用性。
从WordPress切换到Joomla的10个理由
|
前端开发 JavaScript 机器人
使Joomla网站移动友好的4个步骤
您想失去流量和客户吗?您的网站适合移动设备访问是吸引网站访问者的一种快速方法。
使Joomla网站移动友好的4个步骤
|
数据安全/隐私保护 Windows