2

PHPでこれをデバッグするのにいくつかの問題があります。この行を含めると:

require_once("http://" . $_SERVER["HTTP_HOST"] . "/dompdf/dompdf_config.inc.php");

私が得るのは単なる空白のページであり、応答としてhtmlコードを取得しません。たぶんエラーメッセージは隠されていますか?

4

5 に答える 5

8

多くの場合、WSOD (死の白い画面)が発生した場合、致命的なエラーが発生し、標準の出力、つまり生成されたページに表示されないことが原因です。


表示するには、次のことを行う必要があります。

簡単な方法は、次のようなコードの一部を使用して、PHPスクリプトの先頭でこれを行うことです。

error_reporting(E_ALL);
ini_set('display_errors', 'On');


あなたの特定のケースでは、HTTPを介して何かを含めたり要求したりしようとしています。これはしばしば無効になります。

allow_url_includeそれについては、指令を参照してください。

PHPの構成でそれを有効にする可能性があります...しかし、一般的には良い考えとは見なされません。セキュリティ上の理由から無効になっています。
また、ファイルを含めるためのHTTPリクエストの送信には時間がかかります。つまり、リモートサーバーが応答しない場合、アプリケーションは機能しなくなります。


また、ここでは、リモートサーバーからのファイルをインクルードしようとしています$_SERVER["HTTP_HOST"]...

...それで、あなたは実際にはあなた自身のサーバーであるリモートサーバーからのファイルを含めようとしていますか?つまり、リモートのものではありませんか?

その場合、HTTP経由でインクルードしようとしないでください。代わりに、ローカルファイルを使用する必要があります; このように(調整が必要になります)

require_once dirname(__FILE__) . "/dompdf/dompdf_config.inc.php";

こちらです :

  • ネットワークに不要な要求はありません(ローカルディスクから読み取るだけです) =>より高速で安全
  • そして、有効にする必要はありませんallow_url_include


私も追加する必要があります:

  • ローカルの.phpファイルを含めると、.phpファイルのコンテンツがページに含まれます。コピーして貼り付けた場合のように
  • HTTP経由で.phpファイルを含める場合、リモートサーバーがPHPコードを解釈し、出力のみを返送する可能性があります
    • つまり、スクリプトに含まれるのはPHPコードではないということです。
    • ただし、そのPHPコードを実行することで得られる出力のみです。
于 2010-07-14T15:38:20.660 に答える
6

このようなリモートファイルを要求/インクルードしないでください。代わりに、ローカルの絶対パスまたは相対パスを指定してください。

安全ではなく、推奨されていませんが、特定の構成オプションが設定されている場合、技術的には可能です。(allow_url_include)

今後のデバッグに関する懸念事項については、display_errorsに関する以下の他の回答を参照してください。私はよくPHPコマンドラインインタープリターを使用して、エラーの詳細をWeb訪問者に提示することなく、実際のエラーを取得します。

于 2010-07-14T15:37:16.700 に答える
1

これは非常に珍しく安全でないファイルを含める方法ですが、それでも使用する場合は、require_onceのphpソースコードをターゲットにしている可能性があるため、含めるファイルがリモートサーバーで実行されていないことを確認してください。ここでは、その最終出力ではありません。

于 2010-07-14T15:43:50.787 に答える
0

require_onceステートメントのパラメーターは、URLではなくファイルパスである必要があります。

クライアントにWebからファイルをインポートするのではなく、ファイルシステムからファイルをインポートするようにWebサーバーに指示しています。

これは、ステートメントのインクルードページに記載されています。

于 2010-07-14T15:38:31.767 に答える
0

これをスクリプトの最初の行として追加してみてください(明らかに<?phpの後):

error_reporting(E_ALL);
于 2010-07-14T15:37:40.427 に答える