2010-10-01 26 views
6

¿Cómo puedo ejecutar esto antes de cada script php además de ponerlo en todos ellos?¿Ejecutar script php antes de cada script php?

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

Quiero básicamente el mismo efecto que poner eso en la parte superior de cada guión sin realmente hacer eso.

+3

Tenga en cuenta que el encabezado 'HTTP_X_REAL_IP' puede ser falsificado fácilmente por el cliente, mientras que no es tan fácil para' REMOTE_ADDR'. –

+1

¿No tiene un solo punto de entrada para su aplicación? – halfdan

+0

Es por eso que el 'si' está allí. La dirección que busca es mi servidor proxy ip. – Will

Respuesta

10

Colóquelo en su propio archivo y configure auto_prepend_file en el archivo php.ini/.htaccess para señalarlo.

Actualización: Ya que menciona lighttpd en un comentario, cabe destacar que se puede configurar como esta en el archivo INI global con 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 

O puede crear el archivo /vhost/domain.com/.user.ini y hacer lo mismo:

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

Relacionados: http://stackoverflow.com/questions/3792069/how-to-include-a-php-file-site-wide-using-htaccess-or-other-methods/3792076#3792076 – NullUserException

+1

+1 para lighttpd example . Estoy tentado de agregar "lighthttpd" al título de la pregunta para las futuras generaciones –

+0

Vaya por ello: D. También lo probé y funciona muy bien. – Will

1

Si usted tiene los derechos necesarios para cambiar su configuración de PHP, auto_prepend_file es exactamente lo que estás buscando.

auto_prepend_file Especifica el nombre de un archivo que es interpretado automáticamente antes del archivo principal. El archivo se incluye como si se llamara con la función require(), por lo que se usa include_path.

El valor especial none deshabilita el autoprepagado.

+0

Gracias, solo curiosidad, ¿habría una manera más agradable de hacerlo para lighttpd solo para 1 host virtual? – Will

+0

PHP 5.3 admite archivos '.user.ini' por directorio cuando se ejecuta a través de CGI. – Matthew

+0

@ Alto No conozco bien lo suficiente, pero es posible que pueda establecer la opción en un archivo '.htaccess' –

Cuestiones relacionadas