這篇文章主要介紹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實現自動注冊登錄的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。