что делает INCLUDE_CHECK в php? - PullRequest
       3

что делает INCLUDE_CHECK в php?

0 голосов
/ 29 ноября 2010

Привет, я новичок в php и когда наткнулся на define ('INCLUDE_CHECK', true); Я не смог понять, для чего это?

Pls. объяснить.

Спасибо! Сагар

Ответы [ 3 ]

4 голосов
/ 29 ноября 2010

Это константа, которая используется этим приложением позже.Define () используется для создания этих констант.Обычно это используется для данных конфигурации.Чтобы использовать эту константу позже, вы просто используете строку INCLUDE_CHECK в коде, как будто это переменная без $.

, поэтому

if(INCLUDE_CHECK)
{
// Do code that only should happen if you want it to.
}
0 голосов
/ 29 ноября 2010

Просто дополнение к ответу 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 pls. комментарий, если не прав!

Спасибо всем вам за ответы!

0 голосов
/ 29 ноября 2010

INCLUDE_CHECK - это не особенность самого PHP, а лишь некоторый код, который кто-то написал на PHP.Первое нажатие в google показывает нам файл конфигурации, который пользователь пытается защитить, проверив, определена ли переменная.

Подход, использованный во фрагменте, найденном мной в Google, выглядит следующим образом.

  • файл, на который можно ссылаться напрямую (например, http://example.com/foo.php) определит INCLUDE_CHECK и затем включит файл, который проверяет INCLUDE_CHECK, например, config.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!';
?>

Если пользователь обращается к конфигурации.php напрямую, тогда INCLUDE_CHECK не определен, поэтому сценарий умрет с сообщением о недопустимом доступе. Если пользователь получит доступ к foo.php, он определит INCLUDE_CHECK , тогда include config.php, whiЗатем ch откликнется Hello World.

Это довольно дерьмовый способ защиты файла конфигурации, кстати;см. мой пост здесь для более простого и надежного подхода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...