溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

discuz實現(xiàn)自動注冊登錄的方法

發(fā)布時間:2020-08-11 10:22:02 來源:億速云 閱讀:573 作者:小新 欄目:建站服務器

這篇文章主要介紹discuz實現(xiàn)自動注冊登錄的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

本文實現(xiàn)功能:

1.從原有系統(tǒng)進入論壇自動登錄和注冊

2.實現(xiàn)彈框在本頁面,不進行跳轉

3.js在頁面加載時直接發(fā)起注冊請求

這個功能之前使用的uc_user_register這個函數(shù)來處理的,但是今天在開發(fā)用戶空間時就會出現(xiàn)問題。

項目需求

在我們原有的系統(tǒng)上添加一個論壇,但是用戶信息需要共享。

實現(xiàn)方法:在進入論壇時帶上原有系統(tǒng)的用戶信息,然后論壇那邊拿到信息直接注冊即可。

從原有系統(tǒng)進入論壇自動注冊登錄

準備一個這樣的一個緩沖頁面,放到upload/template/default/touch/member/register.htm的頁面中

discuz實現(xiàn)自動注冊登錄的方法

然后我們需要把原有注冊代碼也需要放到upload/template/default/touch/member/register.htm

放這段代碼的原因是dsicuz在提交表單時會有很多的參數(shù)限制,我們就保持原有不動就行了

<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>

然后我們需要在頁面加載時直接發(fā)情請求,添加下面代碼即可。

實現(xiàn)彈框在本頁面,不進行跳轉,加載時直接發(fā)起注冊請求

這段js代碼實現(xiàn)的功能:在頁面加載時直接發(fā)起注冊請求,然后返回信息,直接在本頁面顯示,而非跳轉到另一個頁面

<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>

這個時候還需要最后一步的就是從原系統(tǒng)用什么形勢來傳過來。這個方式這里就不提供了,我做一個模擬的數(shù)據(jù)。

在upload/source/module/member/member_register.php   方法 on_register里邊根據(jù)注釋添加自己的代碼即可

discuz實現(xiàn)自動注冊登錄的方法

測試效果

我們注冊一個ceshi123的賬號

discuz實現(xiàn)自動注冊登錄的方法

測試發(fā)帖

discuz實現(xiàn)自動注冊登錄的方法

為什么不使用uc_user_register這個方法來注冊用戶的原因

如果使用了uc_user_register來直接注冊用戶,就會導致下面的信息全部獲取不到

discuz實現(xiàn)自動注冊登錄的方法

以上是discuz實現(xiàn)自動注冊登錄的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI