Подтвердить что ты не робот

Как узнать, что php файл включен или доступен напрямую?

Есть ли способ узнать, доступен ли доступ к php script напрямую или в него.

  • Предположим, что мы не там, где он включен, поэтому установка переменной сеанса не решит проблему. Я не могу проверить, где он включен. это может быть более 20 мест!
  • Он должен быть обнаружен в PHP скрипт. (через php-функции и переменные)
4b9b3361

Ответ 1

if(__FILE__ != $_SERVER['SCRIPT_FILENAME']) {
  // we're in an include
}

Ответ 2

Используется ceejayoz, но у меня возникают проблемы при использовании символических файлов и путей из-за __FILE__, которые автоматически решаются на реальный путь. Поэтому я использовал функцию realpath() на $_SERVER['SCRIPT_FILENAME'] вместо этого, чтобы разрешить оба пути к реальному пути для решения проблемы.

if(__FILE__ != realpath($_SERVER['SCRIPT_FILENAME'])) {
    // we're in an include
}