2010-10-01 3 views
6

Как я могу запустить это перед каждым скриптом php, кроме того, чтобы поместить его во все из них?Выполнять скрипт php перед каждым скриптом php?

if ($_SERVER['REMOTE_ADDR'] == '123.123.123.123') 
{ 
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP']; 
} 

В основном я хочу, чтобы такое же влияние оказывалось на верхнюю часть каждого скрипта, фактически не делая этого.

+3

Помните, что заголовок 'HTTP_X_REAL_IP' может быть легко подделан клиентом, в то время как это не так просто для REMOTE_ADDR'. –

+1

У вас нет единой точки входа для вашего приложения? – halfdan

+0

Вот почему «если» есть. Адрес, который он проверяет, - это мои прокси-серверы ip. – Will

ответ

10

Поместите его в свой собственный файл и установите конфигурацию auto_prepend_file в файле php.ini/.htaccess, чтобы указать на нее.

Обновление: Поскольку вы упомянули Lighttpd в комментариях, обратите внимание, что вы можете настроить его, как это в глобальном INI файл с PHP 5.3:

[PATH=/vhost/domain.com] 
auto_prepend_file = /vhost/domain.com/foo.php 

[HOST=domain.com] 
auto_prepend_file = /vhost/domain.com/foo.php 

Или вы можете создать файл /vhost/domain.com/.user.ini и сделать то же самое:

auto_prepend_file = /vhost/domain.com/foo.php 
+0

Связанный: http://stackoverflow.com/questions/3792069/how-to-include-a-php-file-site-wide-using-htaccess-or-other-methods/3792076#3792076 – NullUserException

+1

+1 для примера lighttpd , Я испытываю соблазн добавить «lighthttpd» в заголовок вопроса для будущих поколений –

+0

Для этого: D. Также просто попробовал, и он прекрасно работает. – Will

1

Если у вас есть необходимые права для изменения конфигурации PHP, auto_prepend_file это именно то, что вы ищете.

auto_prepend_file Задает имя файла, который будет автоматически обрабатываться перед главным файлом. Файл включен, как если бы он был вызван с помощью функции require(), поэтому используется include_path.

Специальное значение none отключает автоподвал.

+0

Спасибо, просто любопытно, будет ли лучший способ сделать это для lighttpd только для 1 виртуального хоста? – Will

+0

PHP 5.3 поддерживает файлы '.user.ini' для каждого каталога при работе через CGI. – Matthew

+0

@ Высокий Я не знаю lighthttpd достаточно хорошо, но вы можете установить этот параметр в файле .htaccess –

Смежные вопросы