>  기사  >  CMS 튜토리얼  >  discuz가 자동 등록 및 로그인을 구현하는 방법

discuz가 자동 등록 및 로그인을 구현하는 방법

咔咔
咔咔원래의
2020-05-03 21:38:344806검색

이 글에 구현된 기능:

1. 원래 시스템에서 포럼에 들어갈 때 자동으로 로그인하고 등록합니다.

2. 팝업 상자가 점프하지 않고 이 페이지에 있다는 것을 깨닫습니다.

3.js가 직접 페이지가 로드될 때 등록 요청

이 기능은 이전에 uc_user_register 함수에 의해 처리되었지만 오늘날 사용자 공간을 개발할 때 문제가 발생할 것입니다. uc_user_register这个函数来处理的,但是今天在开发用户空间时就会出现问题。

项目需求

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

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

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

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

discuz가 자동 등록 및 로그인을 구현하는 방법

然后我们需要把原有注册代码也需要放到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里边根据注释添加自己的代码即可

discuz가 자동 등록 및 로그인을 구현하는 방법

测试效果

我们注册一个ceshi123的账号

discuz가 자동 등록 및 로그인을 구현하는 방법

测试发帖

discuz가 자동 등록 및 로그인을 구현하는 방법

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

如果使用了uc_user_register

프로젝트 요구 사항


원래 시스템에 포럼을 추가하지만 사용자 정보를 공유해야 합니다.
구현 방법: 포럼 입장 시 원래 시스템의 사용자 정보를 지참한 후, 포럼에서 정보를 받아 직접 등록합니다.

원래 시스템에서 포럼에 들어가면 자동으로 등록 및 로그인

discuz가 자동 등록 및 로그인을 구현하는 방법이러한 버퍼 페이지를 준비하여 upload/template/default/touch/member/register.htm 페이지에서
🎜🎜🎜그림 .png🎜🎜그런 다음 원래 등록 코드를 upload/template/default/touch/member/register.htm에 넣어야 합니다.🎜🎜이 코드를 넣는 이유는 dsicuz 양식을 제출할 때 많은 매개변수 제한사항이 있으므로 변경하지 않고 그대로 유지하면 됩니다🎜🎜rrreee🎜 그런 다음 페이지가 로드될 때 직접 요청을 보내려면 다음 코드를 추가하기만 하면 됩니다. 🎜

이 페이지에 점프하지 않고 팝업 상자를 구현하고 로드 시 등록 요청을 직접 시작

🎜이 js 코드로 구현된 기능: 페이지가 로드될 때 등록 요청을 직접 시작하고 그런 다음 정보를 직접 반환합니다. 다른 페이지로 이동하는 대신 이 페이지가 표시됩니다🎜🎜rrreee🎜이 시점에서 마지막 단계는 원래 시스템에서 정보를 전송하는 것입니다. 여기서는 이 방법을 제공하지 않습니다. 시뮬레이션 데이터를 만들어 보겠습니다. 🎜🎜upload/source/module/member/member_register.php 메소드 on_register에서 댓글에 따라 자신만의 코드를 추가하기만 하면 됩니다🎜🎜discuz가 자동 등록 및 로그인을 구현하는 방법🎜

테스트 효과

🎜ceshi123 계정을 등록합니다🎜🎜discuz가 자동 등록 및 로그인을 구현하는 방법🎜🎜테스트 게시물🎜🎜discuz가 자동 등록 및 로그인을 구현하는 방법🎜🎜uc_user_register를 사용하지 않는 이유 이 방법으로 사용자를 등록하는 이유🎜🎜🎜uc_user_register를 사용하여 사용자를 직접 등록하면 다음 정보를 모두 얻을 수 없습니다🎜🎜🎜🎜🎜🎜🎜 🎜

위 내용은 discuz가 자동 등록 및 로그인을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.