Disattiva gli errori obsoleti in PHP 5.3


127

Il mio server esegue PHP 5.3 e la mia installazione di WordPress mi sta diffondendo, causando l'interruzione di session_start ().

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 647

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 662

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 669

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 676

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 712

Questo è fastidioso, ma non voglio disattivare la segnalazione degli errori dello schermo. Come posso disabilitare questi fastidiosi avvisi deprecati?

Sto eseguendo WordPress 2.9.2.


3.3.1 non è l'attuale versione aggiornata di wordpress?
Shadur,

sembra come un vecchio php con un vecchio wordpress
Qchmqs

Risposte:


203

Puoi farlo nel codice chiamando le seguenti funzioni.

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

o

error_reporting(E_ALL ^ E_DEPRECATED);

Grazie Robus, questo ucciderà anche la segnalazione di errori php?
atwellpub,

6
No, il primo dice sostanzialmente a php di mostrare gli errori ERROR / WARNING / PARSE / NOTICE, il secondo dice a php di mostrare tutti tranne gli errori DEPRECATED.
Robus,

1
Usare PHP 5.5.9 su Ubuntu "error_reporting = E_ALL & ~ E_DEPRECATED & ~ E_STRICT" Non ha alcun effetto .... ma, nel mio esempio, "@mysql_connect ();" fai il trucco :-(
molokoloco

@molokoloco hai sbagliato due volte. Per prima cosa non hai risolto nulla. L'hai appena messo a tacere. Secondo, stai ancora usando mysqlquale è deprecato. Dovresti almeno passare amysqli
Marcin Orlowski,

Non funziona È sovrascritto da qualche parte? Dove lo metti?
Alex,

22

Ho dovuto adattarlo a

error_reporting = E_ALL & ~E_DEPRECATED

21

Per ottenere solo quegli errori che causano il blocco dell'applicazione, utilizzare:

error_reporting(E_ALL ^ (E_NOTICE | E_WARNING | E_DEPRECATED));

Ciò interromperà la visualizzazione di avvisi, avvisi ed errori obsoleti.


13

Tutte le risposte precedenti sono corrette. Dal momento che nessuno ha suggerito come disattivare tutti gli errori in PHP, vorrei menzionarlo qui:

error_reporting(0); // Turn off warning, deprecated,
                    // notice everything except error

Qualcuno potrebbe trovarlo utile ...


11

Ho appena affrontato un problema simile in cui un plug-in SEO ha emesso un gran numero di avvisi che fanno sì che il mio disco del blog superi il limite del piano.

Ho scoperto che è necessario includere il comando error_reporting dopo che il file wp-settings.php richiede nel file wp-config.php:

   require_once( ABSPATH .'wp-settings.php' );
   error_reporting( E_ALL ^ ( E_NOTICE | E_WARNING | E_DEPRECATED ) );

in questo modo non vengono più aggiunti avvisi, avvisi o righe obsolete al file di registro degli errori!

Testato su WordPress 3.8 ma credo che funzioni per ogni installazione.


9

Nel file wp-config.php puoi trovare la costante WP_DEBUG. Assicurarsi che sia impostato su false.

define('WP_DEBUG', false);

Questo è per WordPress 3.x.


7

Devi modificare il file di configurazione di PHP. Trova la linea

error_reporting = E_ALL

e sostituiscilo con:

error_reporting = E_ALL ^ E_DEPRECATED

Se non hai accesso al file di configurazione puoi aggiungere questa linea al file WordPress PHP (forse headers.php):

error_reporting(E_ALL ^ E_DEPRECATED);

È molto meglio aggiungerlo a wp-config.php. È progettato per essere modificato con le impostazioni di configurazione.
Nilpo,

4

Tendo a usare questo metodo

$errorlevel=error_reporting();
$errorlevel=error_reporting($errorlevel & ~E_DEPRECATED);

In questo modo non spengo accidentalmente qualcosa di cui ho bisogno


1
Questo ti dà meno controllo. Stai assumendo che tutto ciò che è attualmente configurato sia corretto. Meglio impostarlo direttamente come necessario in modo da non ottenere configurazioni sovrapposte.
Nilpo,

Capire. Ogni caso è diverso.
realtebo,

1
Questa è comunque la risposta migliore. È l'unico che risponde direttamente alla domanda: disabilita solo E_DEPRECATED, senza effetti collaterali.
Sygmoral,

-2

questo errore si verifica quando cambi la versione di php: è molto semplice sopprimere questo messaggio di errore

Per sopprimere il messaggio di errore DEPRECATED, basta aggiungere il codice seguente nel file index.php:

init_set ( 'display_errors', false);


non farlo, ciò nasconde tutti i messaggi di errore, non solo per gli ammortamenti.
Tanaydin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.