【问题标题】:what does INCLUDE_CHECK do in php?INCLUDE_CHECK 在 php 中做了什么?
【发布时间】:2010-11-29 12:57:16
【问题描述】:

嗨,我是 php 新手,当我遇到 define('INCLUDE_CHECK',true);我无法理解它的用途?

请。解释一下。

谢谢! 萨加尔

【问题讨论】:

    标签: php phpmyadmin


    【解决方案1】:

    这是该应用程序稍后使用的常量。 Define() 用于创建这些常量。通常这用于配置数据。以后要使用这个常量,您只需在代码中使用字符串 INCLUDE_CHECK,就像它是一个没有 $ 的变量一样。

    所以

    if(INCLUDE_CHECK)
    {
    // Do code that only should happen if you want it to.
    }
    

    【讨论】:

    • 他们可以。它们可以保存任何非复杂的数据结构。字符串、浮点数、整数、布尔值。它们不能保存对象或数组。如果您对 PHP 真的很陌生,我只会阅读 php.net 在 Define() 上的条目,如果这太难理解,请稍后再回来。这是 PHP 的中等高级方面。
    • 非常感谢您的回答对我帮助很大!
    • 我很高兴!祝你好运!如果你想回馈,也许选择这个答案作为正确的答案?
    • 我正在选择它,但它说将在 2 分钟后被选中。再次感谢,我会选择这个答案。
    【解决方案2】:

    只是对 DampeS8N 答案的补充,这是正确的。

    我看了php.net的链接http://in2.php.net/manual/en/function.define.php 下面的示例清楚地表明,任何值都可以在定义函数中用于将变量定义为常量,而 INCLUDE_CHECK 只是一个变量,我认为它是某种 php 功能;)

    <?php
    define("CONSTANT", "Hello world.");
    echo CONSTANT; // outputs "Hello world."
    echo Constant; // outputs "Constant" and issues a notice.
    
    define("GREETING", "Hello you.", true);
    echo GREETING; // outputs "Hello you."
    echo Greeting; // outputs "Hello you."
    
    ?>
    

    @DampeS8N 请。如有错误请评论!

    感谢大家的回答!

    【讨论】:

      【解决方案3】:

      INCLUDE_CHECK 不是 PHP 本身的特性,只是某些人用 PHP 编写的代码。第一次点击on google 向我们展示了一个配置文件,用户试图通过检查变量是否已定义来保护该文件。

      我在google上找到的sniped中采取的做法是这样的

      • 可以直接引用的文件(例如http://example.com/foo.php)将定义 INCLUDE_CHECK,然后包含一个检查 INCLUDE_CHECK 的文件,例如配置.php;因为 foo.php 已经定义了它,所以它会正常工作
      • 如果用户直接访问 config.php(例如http://example.com/config.php),则 INCLUDE_CHECK 不会被定义,因此会发生错误,阻止用户运行脚本。

      下面的例子应该更清楚

      foo.php

      <?php
      defined('INCLUDE_CHECK', true);
      require_once 'config.php';
      ?>
      

      config.php

      <?php
      if (!defined('INCLUDE_CHECK')) { die ('invalid access'); }
      echo 'Hello World!';
      ?>
      

      如果用户直接访问 config.php,那么 INCLUDE_CHECK 没有定义,所以脚本会死掉,提示无效访问。如果用户访问 foo.php,它将定义 INCLUDE_CHECK 然后包含 config.php,然后它将回显 Hello World。

      顺便说一句,这是一种非常糟糕的保护配置文件的方法;请参阅my post here 了解更简单可靠的方法。

      【讨论】:

      • 感谢您的回复!这真的很有帮助,但仍然不明白如何保护您的 ans 的 google 链接中的配置文件...
      • 我已经更改了答案以解释在 google 上找到的示例是如何工作的。正如我所说,这不是保护这些文件的好方法。
      猜你喜欢
      • 2010-10-26
      • 2013-09-04
      • 2012-06-16
      • 2011-10-28
      • 1970-01-01
      • 2011-11-03
      • 2010-10-23
      • 1970-01-01
      • 2014-08-03
      相关资源
      最近更新 更多