2010-11-05 23 views
5

J'ai erreurs dépréciée PHP inondant les fichiers journaux et les pages d'état Drupal comme ceci:PHP dépréciée avertissements sur les pages Drupal malgré les désactivant dans php.ini

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

je devrais être en mesure de désactiver les erreurs E_DEPRECATED dans mon php.ini, mais il est sans effet en dépit d'être mis à:

error_reporting = E_ALL & ~E_DEPRECATED 

rapports phpinfo() error_reporting valeur principale et la valeur locale à la fois 22527.

Je l'ai fait une

grep -R error_reporting 

dans le document racine dans l'espoir de trouver des niveaux d'erreur codés en dur et pas de chance:

./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); 

Rien que je vois est supect sauf peut-être la première ligne system.install mais si j'ai raison, cela devrait désactiver toutes les erreurs.

Je ne définis pas error_reporting dans .htaccess, mais cela n'a aucun effet non plus. J'espère qu'il existe une solution qui n'implique pas de niveaux d'erreur de codage dur dans common.inc (qui fonctionne, j'ai essayé - mais évidemment indésirable). Je sais que les erreurs obsolètes sont le résultat de la mise à niveau vers PHP 5.3, mais la rétrogradation de PHP n'est pas une option (de nouveaux sites sont en cours sur le même serveur qui a été testé sur 5.3, et les sites où ces erreurs se produisent ont 2 mois à vivre). Je ne peux pas non plus mettre à niveau les versions de Drupal qui fonctionnent bien avec 5.3 car malheureusement le précédent propriétaire haxxed les modules de base sans documenter ses changements.

stuff Version:

PHP 5.3.2-1, Ubuntu 10.04, Drupal 6.13 sur un site, 6.5 (! !! 1) sur l'autre, Apache 2.2

+0

De l'appel 'system_error_reporting_settings', il semble qu'il existe un paramètre pour cela. Qu'en est-il d'essayer de le modifier en premier? –

Répondre

0

Je ne sais pas désactivation des rapports d'erreurs mais vous pouvez remplacer toutes les fonctions ereg par preg_match ..!

+0

Espérant faire le minimum de changements possibles au code, en gardant à l'esprit qu'il y aura des appels obsolètes dans un tas d'endroits, y compris le code de base. – iftheshoefritz

+0

Laissez les ingénieurs Microsoft masquer les erreurs = p ou attendez Drupal 7 ..! – MatTheCat

3

Avez-vous essayé l'édition index.php être


error_reporting(E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED); 

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

Je l'ai utilisé sur mon fichier php.ini et ne pouvait cacher ces erreurs déconseillés. J'espère que cela vous aide! =

error_reporting = E_ALL & ~E_DEPRECATED & -E_WARNING