2010-11-05 6 views
5

tengo errores de PHP en desuso que inundan los archivos de registro y páginas de estado de Drupal como esto:PHP obsoleta advertencias en las páginas de Drupal pesar de apagarlos en php.ini

: Function ereg() is deprecated in mysite/includes/file.inc on line 893. 

yo debería ser capaz de apagar errores en mi E_DEPRECATED php.ini, pero que está teniendo ningún efecto a pesar de estar ajustado a:

error_reporting = E_ALL & ~E_DEPRECATED 

phpinfo() informes error_reporting valor principal y el valor local, tanto 22527.

hice una

grep -R error_reporting 

en mi raíz del documento con la esperanza de encontrar algún error niveles fuertemente codificados y sin suerte:

./includes/common.inc: // If the @ error suppression operator was used, error_reporting will have 
./includes/common.inc: if (error_reporting() == 0) { 
./modules/system/system.module: 'page arguments' => array('system_error_reporting_settings'), 
./modules/system/system.admin.inc:function system_error_reporting_settings() { 
./modules/system/system.install:  $err = error_reporting(0); 
./modules/system/system.install:  error_reporting($err); 

Nada de lo que puedo ver que es supect excepto posiblemente la primera línea en system.install pero si estoy en lo cierto, debería desactivar todos los errores.

No estoy configurando error_reporting en .htaccess, pero hacer eso tampoco tiene ningún efecto.

Espero que exista una solución que no implique niveles difíciles de codificación errónea en common.inc (que SI FUNCIONA, lo he intentado, pero obviamente no es deseable).

Sé que los errores obsoletos son el resultado de actualizar a PHP 5.3, pero la degradación de PHP no es una opción (los nuevos sitios están funcionando ahora en el mismo servidor que se han probado en 5.3, y los sitios donde ocurren estos errores 2 meses para vivir). Tampoco puedo actualizar a las versiones de Drupal que funcionan muy bien con 5.3, ya que lamentablemente el propietario anterior haxxed los módulos centrales sin documentar sus cambios.

cosas Versión:

PHP 5.3.2-1, Ubuntu 10.04, Drupal 6.13 en un sitio, 6.5 (! !! 1), por otra, Apache 2.2

+0

De la llamada 'system_error_reporting_settings', parece que hay una configuración para esto. ¿Qué hay de tratar de modificarlo primero? –

Respuesta

0

no sé acerca Deshabilitar el informe de errores pero puede reemplazar todas las funciones ereg por preg_match ..!

+0

Esperando hacer los cambios mínimos posibles en el código, teniendo en cuenta que habrá llamadas obsoletas en varios lugares, incluido el código central. – iftheshoefritz

+0

¡Permita que los ingenieros de Microsoft oculten los errores = p o esperen Drupal 7 ..! – MatTheCat

3

¿Usted intentó index.php edición para ser


error_reporting(E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED); 

require_once './includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 
2

he utilizado esto en mi archivo php.ini y podría ocultar los errores en desuso. Espero que te ayude! =)

error_reporting = E_ALL & ~E_DEPRECATED & -E_WARNING 
Cuestiones relacionadas