douruhu4282 2013-01-12 20:50
浏览 14
已采纳

是否可以检测何时包含php文件?

So in file first.php I will include file original.php with include_once.

Problem occurs, when I try to call functions which are inside original.php and that file is not loading if there is no user session.

Basicaly I'm include file original.php in which are few functions im calling later in first.php, but those functions are inaccesible due to restrictions I've set in original.php, but now I want to add rule to original.php to allow such requests from first.php or any other PHP file that will include original.php...

I wonder what could I do in this case OR could I simply add some if clause to original.php, like:

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

Thanks for ideas and help in advance!

  • 写回答

5条回答 默认 最新

  • duanmei2459 2013-01-12 21:04
    关注

    You can set a constant in the file to be included like so:

    In original.php:

    define('ORIGINAL_INCLUDED', TRUE);
    

    Then in first.php you check if the constant exists:

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

    Unlike get_included_files() this will work when a script includes a script. get_included_files() will only return the files included in the main script, but not scripts included in child scripts.

    Or in original.php:

    if ('original.php' == basename(__FILE__))
    {
        // original.php directly accessed
    }
    else
    {
        // original.php included instead
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 基于双目测规则物体尺寸
  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,