最近、phpbb3 Webサイトとフォーラムを迅速に統合する必要が生じました。 グーグル、私は通常の例を見つけませんでした。 私は自分で書かなければなりませんでした。 おそらく誰かが役に立つでしょう。
そこで、独自の認証システムを備えたサイトを用意します。 既存のユーザーベースの統合に関する問題に対する迅速な(そしておそらくは正しい)解決策を備えたphpbbフォーラムを追加する必要があります。 新しいユーザーの承認と登録は引き続きサイトで行われ、既に登録されているユーザーはフォーラムに参加します。 フォーラムへの登録と承認は終了します。
開始するには、新しいユーザーを登録する機能を無効にします。
これを行うには、管理者アカウントの「一般」タブに移動し、左側のメニューで「ユーザー登録」を選択します。 次に、登録をオフにします。

それでは、プラグインの作成を始めましょう。
すべての認証プラグインは、フォーラムサブディレクトリinclude / auth /に保存されます。 標準のauth_dbの他に、すでにいくつかのプラグインファイルがあります。 プラグインを追加します:auth_simpleという名前にします。 ファイル名が含まれる関数の名前を決定することが重要です。 /auth/auth_simple.phpを含むファイルを作成します。
少なくとも、ファイルには機能が必要です
login_simple(&$ユーザー名、&$パスワード)関数は、このコンテンツの配列を返す必要があります。
array( 'status' => LOGIN_SUCCESS,
すべてが明らかであるように見えますが、合理的な質問が発生する可能性があります-ユーザーがまだフォーラムに登録されていない場合、「user_id」を取得する場所は? 答えも簡単です。ユーザーがまだ登録されていない場合は、 'status'キーの値をLOGIN_SUCCESS_CREATE_PROFILEに変更する必要があります。 この場合、ユーザーは自動的に作成されます。
次に、承認プラグインには、ユーザーがフォーラムに最初にアクセスしたときに自動的にフォーラムにユーザーを登録して承認する機能が含まれている必要があります。
autologin_simple()この関数は、現在のユーザーに関するすべての情報を含む連想配列を返す必要があります。
この例ではこのユーザーを登録するとすぐに言います。
function get_user_data() { $result['user_email'] = “user@example.com”; $result['username'] = “username”; $result['user_password'] = “user_password”; return $result; }
実際の場合、この関数は、実際のサイトの現在のユーザーのセッションからデータを転送します。
したがって、プラグインファイルの内容は次のとおりです。
<?php if (!defined('IN_PHPBB')) { exit; } function get_user_data() { $result['user_email'] = “user@example.com”; $result['username'] = “username”; $result['user_password'] = “user_password”; return $result; } function login_simple(&$username, &$password) { $auth = get_user_data();
参照資料
- プラグインの例 -この記事では、このトピックの作成を促しました。 残念ながら、そこで提案されたオプションは機能しませんが、方向は正しいです
- 公式ウィキ -すべて正しいですが、例はありません