搜尋
首頁CMS教程Discuzdiscuz如何實現自動註冊登錄

discuz如何實現自動註冊登錄

May 03, 2020 pm 09:38 PM
discuz註冊登入

本文實作功能:

    1.從原始系統進入論壇自動登入與註冊

    2.實現彈框在本頁面,不進行跳躍

#    3.js在頁面載入時直接發起註冊請求

這個功能之前使用的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如何實現自動註冊登錄

以上是discuz如何實現自動註冊登錄的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器