3

そのため、ファイルfirst.phpに を含むファイルを含めoriginal.phpますinclude_once

内部にある関数を呼び出そうとするとoriginal.php、ユーザーセッションがない場合にそのファイルが読み込まれないという問題が発生します。

基本的に、私はoriginal.phpで後で呼び出すいくつかの関数を含むファイルをインクルードしていますfirst.phpが、これらの関数は で設定した制限のためにアクセスできませんoriginal.php。含む...original.phpfirst.phporiginal.php

この場合、私は何ができるのだろうか、または次original.phpのように if 句を単純に追加できますか?

if($fileIncluded == 'yes')
{
   // do not check if user session exist etc.
}
else
{
   // check for user session
}

事前にアイデアと助けをありがとう!

4

5 に答える 5

4

ファイルに定数を設定して、次のように含めることができます。

original.php

define('ORIGINAL_INCLUDED', TRUE);

次にfirst.php、定数が存在するかどうかを確認します。

if (defined('ORIGINAL_INCLUDED'))
{
    // do not check if user session exist etc.
}
else
{
    // check for user session
}

get_included_files()とは異なり、これはスクリプトにスクリプトが含まれている場合に機能します。get_included_files()メインスクリプトに含まれるファイルのみを返しますが、子スクリプトに含まれるスクリプトは返しません。

またはでoriginal.php

if ('original.php' == basename(__FILE__))
{
    // original.php directly accessed
}
else
{
    // original.php included instead
}
于 2013-01-12T21:04:30.587 に答える
2

PHP は、このシナリオで機能するように見えるget_include_files関数を提供します。

if in_array('file.php', get_included_files()) {
    /* ... */
}
于 2013-01-12T20:56:38.807 に答える
1

まあ、私はPHPの初心者ですが、そうします

$add_file = require(file.php);

そして、する

if($add_file) {echo "file is aded";} else {echo "file is not added";}
于 2013-01-12T20:52:41.860 に答える
1

関数を使用するget_included_files()か、次のように変数を設定できます。

  // includedfile.php
 $variable = true;

 //index.php
 include 'includedfile.php';

 if(isset($variable)) {
     // file included
 } else {
     // not included
 }
于 2013-01-12T20:56:15.113 に答える
1

定数を定義して、後で定義されているかどうかを確認することもできます。そのためにdefineおよびdefined関数を使用します。通常の変数を使用するよりも優れていると思います。

PHP ドキュメント: http://ch2.php.net/manual/en/function.defined.phpおよびhttp://ch2.php.net/manual/en/function.define.php

于 2013-01-12T21:06:33.340 に答える