0

私はこのphpメールアプリを使用しており、これを何度も繰り返すことなく、1つのフォルダーの下に複数のデータベースを配置しようとしています。データベース接続は smarty テンプレートを使用していますが、これについてどうすればよいかよくわかりません。

アプリケーション ファイル: http://pommo-ext.googlecode.com/svn/trunk/

私はこれをやろうとしています:

If username/password is Smith => connect to DB_1 
If username/password is John => connect to DB_2 
If username/password is Jim => connect to DB_3

これは、DB コネクタの config.php ファイルです。

http://pommo-ext.googlecode.com/svn/trunk/config.sample.php

[db_hostname] = localhost
[db_username] = root
[db_password] = root
[db_database] = db_1
[db_prefix] = db_

また、ここにもDBのクラスがあります。 http://pommo-ext.googlecode.com/svn/trunk/inc/classes/pommo.php

4

1 に答える 1

1

私は Pommo には詳しくありませんが、あなたの質問から、アプリケーションを 1 回インストールするだけでデータベース設定が異なる、ある種のマルチユーザー環境を作成しようとしていることがわかります。一般に、(どのアプリケーションでも) これを行う簡単な方法や簡単な方法はありません。

まず、ユーザー名に基づいて異なるデータベース接続を使用するように、Pommo のすべての内部ロジックを書き直す必要があります。ただし、その場合、ユーザー名に基づいてデータベースを選択する必要があるため、ユーザー名をデータベースに保存することはできません。この情報用に別のデータベースを追加することもできますが、それはばかげています。

第二に、異なるデータベースが必要ですが、なぜそれが必要なのか想像できません。まず、テーブル プレフィックスを使用してみませんか? 次に、Pommo にはある種のマルチユーザー環境があり、同じインストールを複数のユーザーと共有できると確信しています。それは不可能かもしれませんが、次の 2 つのことを行うことができます。

  • 他のアプリケーションを探し始めます。
  • あなたが望むものをすでに書いている他の愛好家を探し始めてください。

最後に、Smarty はデータベース接続に関して何もする必要はありません。Pommo が Smarty を使用してテンプレートを作成したり、Smarty テンプレートをデータベースに配置したりすることを想像しますが、実際のデータベースのセットアップは PHP のどこかで行う必要があります。


ただし、「優れた」解決策が必要なく、深刻な醜さを覚悟しており、迅速な解決策が必要な場合は、おそらく PHP セッションを使用できます。$_SESSION['custom_username']ログインページで要求することにより、ユーザーのユーザー名を保存できます。ただし、データベースはユーザー名に依存しているため、Pommo がデータベースに渡されたユーザー名を検証しようとする前に、ログイン ページが必要であることに注意してください。Pommo のインストールとは別のページを作成することをお勧めします。GET パラメータを使用してセッションを設定し、アプリケーションに転送するファイルのようなものを作成したい場合があります。

その後、config.php で、セッションのユーザー名を確認し、それに基づいてプロパティを変更できます。

これが機能するには、PHP セッションを適切に設定する必要があります。Pommo が既にセッションを使用している場合は、おそらくその機能を再利用できますが、Pommo の使用を妨げないようにしてください。

于 2012-06-06T15:22:47.230 に答える