仅在从特定页面调用时才运行PHP脚本

时间:2018-11-28 15:36:21

标签: php

我有一个PHP脚本,该脚本通过include_once包含在pageX.php中。我们称它为脚本A.php。

可以通过从浏览器直接导航到该脚本来调用该脚本:www.whatever.com/scripts/A.php。

但是我想要的是脚本A.php仅可通过包含(在pageX.php上)来访问,因为它包含我只希望在pageX.php上显示的信息。

除了使用$_SESSION之外,还有其他方法吗?

2 个答案:

答案 0 :(得分:2)

您可以在index.php中定义一个常量,如果直接调用包含的脚本,该常量将不存在。在您包含的脚本中,检查是否设置了该常量,如果未设置,则停止执行。

您的原始脚本(index.php):

define('PROPERLY_STARTED', true);
include_once 'a.php';

您的a.php

if (!defined('PROPERLY_STARTED')) return;

由于某些原因我的评论被删除:在此情况下,由于您需要将该代码添加到每个文件中,因此容易出错。解决此问题的既定方法是仅在您的Web根目录中公开index.php,并在您的Web根目录之外的目录中保留应无法访问的文件,以使它们甚至无法通过HTTP访问(请参见例如问题被接受的答案标记为重复)

答案 1 :(得分:1)

  1. 请不要让A.php输出任何内容并使用 基于功能/方法的方法 如果只定义了函数,则PHP脚本不会执行任何操作。

  2. 仅限制对pageX.php的访问(通过chmod / htaccess)