16

phpBBの変更に関して、おそらく初心者の質問であることについて、助けが必要です。

システム全体を PHP で開発しました。phpBB を統合して、ユーザーが再度ログインしなくてもフォーラムに移動してシームレスに投稿できるようにしたいと考えています。

現在、私のシステムのユーザー テーブルとして phpBB の users テーブルを使用する (そして、私の Web サイトではなく phpBB に登録する) ことは残念ながらできません (独自の基本的なフォーラムを構築するよりも、システムをやり直す方が手間がかかります)。 .
特定のユーザーIDがログインしているとphpBBに信じ込ませる方法をハックできると仮定していますが、そのユーザーはphpBBのusersテーブルに存在しません(ほとんどどこでもエラーになると思います) .

私が見つけることができたすべてのチュートリアルとフォーラムの投稿は、phpBB をプライマリとして使用することを暗示していました。私はそれを逆にするものを見つけることができませんでした。

これを解決する唯一の方法は、両方のテーブルを比較的同期させることだと思います。

さて、両方のユーザー テーブルを同期させることができれば、サイトのログイン テーブルとユーザー テーブルを「プライマリ」テーブルとして維持しながら、両方のサイトを統合する最良の方法は何ですか?
また、phpBB の users テーブルにレコードを作成する際に、特に注意すべきことはありますか? それとも比較的分かりやすいですか?複数のテーブルがある場合、どのテーブルに書き込む必要がありますか?

4

4 に答える 4

11

これは古い質問なので、今までに何かを解決したと確信していますが、将来リファクタリングする必要がある場合は、phpBB3 の認証プラグインで完全に可能です。

http://wiki.phpbb.com/Authentication_plugins

私は現在、phpBB が「セカンダリ」システムであるシステムに取り組んでおり、かなりうまくいっています。

于 2010-02-01T17:13:34.733 に答える
6

以前にphpBBをサイトに統合したことがありますが、あなたが言ったように、phpBBのログインシステム/ユーザーテーブルをプライマリテーブルとして使用しました。phpBB は非常に高度なフォーラム ソフトウェアであるため、ユーザーとログイン システムを完全に変更するのはかなりの時間のかかるプロジェクトです。

サイトのログインをプライマリとして使用する必要があるときは、 PunBBを使用しました。PunBB を変更する方がはるかに簡単でした。

自分のログインをプライマリとして絶対に使用し、phpBB を使用する必要がある場合、最も簡単な方法はテーブルを同期させ、誰かがログインしたときに両方のログイン スクリプトを呼び出すことであることに同意します。

phpBB にデータを挿入する場合、users テーブルは非常に単純です。各エントリにはユーザーの基本情報が含まれており、ユーザー プロファイルのカスタム フィールドがある場合は、テーブルprofile_fieldsprofile_fields_dataテーブルに入力されます。

注意が必要なのは、phpBB がユーザーのパスワードを暗号化する方法です。そのために呼び出されたphpBBの関数を使用する必要があると思いますphpbb_hash($password)。ファイルで宣言されています phpbb/includes/functions.php

phpBB ログイン コードについては、ファイル内の funciton login_box を参照してください。phpbb/includes/functions.php

于 2008-11-11T21:23:22.847 に答える
2

以下を使用して phpBB にログインできます。

$result=$auth->login($username, $password);

if ($result['status'] == LOGIN_SUCCESS) {

  echo "You're logged in";

} else {

  echo $user->lang[$result['error_msg']];

}
于 2009-01-08T08:44:15.217 に答える