1

私は一連の Web サイトをすべて同じサーバー上で異なるドメインでホストしています。いくつかの一般的な PHP スクリプトをホストして、他のドメインからこれらを呼び出せるようにしたいと考えています。

私は私のphpに少し慣れていないので、コードの試行を許してください-私が目指していることを理解するのに役立つかもしれない次の繰り返しを試しました!

phpタグ内から...

include('http://www.mydomain/common_include.php?show_section=$section');

$show_section = $_GET['show_section'];
include('http://www.mydomain/common_include.php');//Then $show_section would be available to the included file/cod

最後に、関数を含むインクルードを取得してから、親スクリプトからそのインクルードを実行しようとしました。

  • サーバー(ファイルシステムなど)に関与するよりも、このPHP指向を維持したい(ただし、パーミッションなどは変更できます)
  • 同じライブラリを各ドメインに個別にアップロードすることはできますが、それはしたくありません。
  • PHP はサーバー上で実行されることを理解しているため、別のサーバーにスクリプトを含めると問題が発生する可能性があります。

前もって感謝します。

#

編集 OK OK - 私はそれが悪い習慣であることを理解しています....迅速な回答に感謝します. ただし、各サイトのルートにファイルを追加することなく、すべてのサイトでこの基本的な php アプリを本質的に表示する方法について、他に推奨事項はありますか? 大量のスクリプトの重複を防ぐために...(データベースまたはその他のソリューションからスクリプトを大声で呼び出すことを考えてください)再度ご協力いただきありがとうございます

4

5 に答える 5

3

自分のプロジェクトにリモートの PHP ファイルを含めるだけでは、セキュリティ上の大きなリスクになります。PHP はサーバーから送信される前に解析されるため、クロスドメイン インクルードにはスクリプトが生成する出力のみが含まれます。PHP ファイルをインクルードして実行できるようにする唯一の方法は、ローカル ファイルシステムを使用することです。

インクルードに関するPHP.netのドキュメントを見ると、次のことがわかります。

PHP で「URL fopen ラッパー」が有効になっている場合 (デフォルト設定)、URL を使用して (HTTP または他のサポートされているラッパー経由で) 含めるファイルを指定できます - リストについては、サポートされているプロトコル/ラッパーのリストを参照してください。プロトコル) をローカル パス名の代わりに使用します。ターゲット サーバーがターゲット ファイルを PHP コードとして解釈する場合、HTTP GET で使用される URL 要求文字列を使用して、変数をインクルード ファイルに渡すことができます。これは厳密には、ファイルをインクルードして親ファイルの変数スコープを継承させることと同じではありません。スクリプトは実際にリモート サーバーで実行され、その結果がローカル スクリプトに組み込まれます。

これで全体がほぼ説明されます。

于 2010-06-23T11:58:07.357 に答える
1

元の質問の根本は、複数のサイトでPHPスクリプトまたはプラグインを使用し、更新が必要になるたびに面倒な作業を行うことについての投稿者の懸念であるように思われました。サイト間でPHPファイルを含めることは悪い考えですが、スクリプトを可能な限り自己完結するように構成することをお勧めします。プラグイン全体を1つのディレクトリに格納し、それを利用するための関数呼び出しが可能な限り適切に形成されていることを確認します。クリーンで適切な名前の関数、統一された命名規則、および各関数に必要なパラメータについてよく考えられた計画です。グローバル変数の使用は避けてください。

理想的には、すべての場所でプラグイン/スクリプトを更新する必要があるたびに、非常に簡単な時間を過ごす必要があります。プラグインを含む新しいディレクトリを各サイトにアップロードして、古いディレクトリを置き換える自動プロセスを設定することもできます。また、コード内の関数呼び出しが変更されることはめったにありません。

スクリプトが十分に大きい場合は、Wordpressの最新バージョンで使用されているような自動更新プロセスを実装できます。ボタンをクリックすると、自動的に更新されます。過去には、Wordpressを実行している12のサイトを更新することは(例として)大きな苦痛でした。

于 2013-02-24T15:22:38.040 に答える
0

それは非常に悪い習慣です。
実際には、PHP ではなく HTML コードだけを含めています。

URL ではなくファイルを含めます。同じサーバーなら可能です。これらのファイルへの絶対パス
を 使用してください。

于 2010-06-23T11:58:13.557 に答える
0

それが悪い習慣であるという事実は別として、本当にそうしたいのであれば、include がURLを許可しているかどうかを最初に確認する必要があります。

ただし、スクリプトを使用する必要があるすべてのサイトの場合、php を実行するユーザーがアクセスできるディレクトリのどこかにスクリプトを配置し、そのディレクトリを php.ini のinclude_pathプロパティに追加できます (実行時にも実行できます) 。

(または、php 拡張機能を作成して拡張機能としてロードすることもできます)

于 2010-06-23T12:05:46.003 に答える