@kostik19972106

Проверка подключения файла?

Как проверить из файла то что он подключен а не открыт.. тоесть открыт не через url. А подключен через другой файл.
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Можно просто сравнить точку входа и имя текущего файла. (отсюда)
if ( basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"]) ) {
  echo "called directly";
} else {
  echo "included/required"
}


Еще один способ
$trace = debug_backtrace();
if (empty($trace)) {
  echo "called directly";
} else {
  echo "included/required";
  var_export($trace); // можно посмотреть не только точку входа, 
  // но вообще всю цепочку вызовов, которая привела к исполнению этого файла
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dzhebrak
Еще один часто используемый способ - в index.php (точка входа) объявить константу, например,:

define('INDEX_LOADED', true);

а в других файлах (подключаемых) добавить проверку:
if(!defined("INDEX_LOADED")) {
	die('Inсlude only');
}

Или можно вынести подключаемые файлы за webroot.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы