이 글에 구현된 기능:
1. 원래 시스템에서 포럼에 들어갈 때 자동으로 로그인하고 등록합니다.
2. 팝업 상자가 점프하지 않고 이 페이지에 있다는 것을 깨닫습니다.
3.js가 직접 페이지가 로드될 때 등록 요청
이 기능은 이전에
uc_user_register
함수에 의해 처리되었지만 오늘날 사용자 공간을 개발할 때 문제가 발생할 것입니다.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
upload/template/default/touch/member/register.htm 페이지에서
upload/template/default/touch/member/register.htm
에 넣어야 합니다.🎜🎜이 코드를 넣는 이유는 dsicuz 양식을 제출할 때 많은 매개변수 제한사항이 있으므로 변경하지 않고 그대로 유지하면 됩니다🎜🎜rrreee🎜 그런 다음 페이지가 로드될 때 직접 요청을 보내려면 다음 코드를 추가하기만 하면 됩니다. 🎜uc_user_register를 사용하지 않는 이유
이 방법으로 사용자를 등록하는 이유🎜🎜🎜uc_user_register
를 사용하여 사용자를 직접 등록하면 다음 정보를 모두 얻을 수 없습니다🎜🎜🎜🎜🎜🎜🎜 🎜위 내용은 discuz가 자동 등록 및 로그인을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!