Domanda

Devo installare il mio script PHP in alto per disattivare la segnalazione degli errori per gli standard rigorosi.

Qualcuno può aiutarmi?

È stato utile?

Soluzione

Vuoi disattivare la segnalazione degli errori, o semplicemente impedire all'utente di vederlo? Di solito è una buona idea per registrare gli errori, anche su un sito di produzione.

# in your PHP code:
ini_set('display_errors', '0');     # don't show any errors...
error_reporting(E_ALL | E_STRICT);  # ...but do log them

Essi verranno registrati al vostro registro di sistema standard, oppure utilizzare la direttiva error_log per specificare esattamente dove si vuole errori di andare.

Altri suggerimenti

Per nessun errore.

error_reporting(0);

o semplicemente non rigorosa

error_reporting(E_ALL ^ E_STRICT);

e se mai desidera visualizzare di nuovo tutti gli errori, utilizzare

error_reporting(-1);

Tutte le soluzioni di cui sopra sono corrette. Ma, quando stiamo parlando di una normale applicazione PHP, devono incluso in ogni pagina, che richiede. Un modo per risolvere questo, è attraverso .htaccess alla cartella principale. Proprio per nascondere gli errori. [Mettere una delle linee followling nel file]

php_flag display_errors off

o

php_value display_errors 0

Avanti, per impostare la segnalazione degli errori

php_value error_reporting 30719

Se vi state chiedendo come il valore 30719 venuto, E_ALL (32767), E_STRICT (2048) sono in realtà costante che detengono valore numerico e (32767 - 2048 = 30719)

Il valore predefinito di error_reporting bandiera è E_ALL & ~ E_NOTICE se non impostata in php.ini. Ma in qualche installazione (in particolare le installazioni destinate ambienti di sviluppo) ha E_ALL | E_STRICT impostare come valore questo flag (questo è il valore consigliato durante lo sviluppo ). In alcuni casi, specialmente quando ti consigliamo di eseguire alcuni progetti open source, che è stato sviluppato prima di PHP 5.3 era e non ancora aggiornato con le migliori pratiche definite da PHP 5.3, nel vostro ambiente di sviluppo, probabilmente incorrere in ottenere un certo messaggi come si stanno ottenendo. Il modo migliore per far fronte a questa situazione, è quello di impostare solo E_ALL , come il valore di error_reporting di bandiera, sia in php.ini o in codice (probabilmente in un front-controller come index.php in web-root come segue:

if(defined('E_STRICT')){
    error_reporting(E_ALL);
}

In serie php.ini:

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

WordPress

Se si lavora in un ambiente wordpress, Wordpress imposta il livello di errore nel file wp-includes / load.php nella funzione wp_debug_mode(). Quindi devi cambiare il livello dopo questa funzione è stata chiamata (non in un file controllato in git così che è solo lo sviluppo), o sia modificare direttamente la chiamata error_reporting()

non ho visto una risposta che è pulito e adatto per il software pronto per la produzione, così qui va:

/*
 * Get current error_reporting value,
 * so that we don't lose preferences set in php.ini and .htaccess
 * and accidently reenable message types disabled in those.
 *
 * If you want to disable e.g. E_STRICT on a global level,
 * use php.ini (or .htaccess for folder-level)
 */
$old_error_reporting = error_reporting();

/*
 * Disable E_STRICT on top of current error_reporting.
 *
 * Note: do NOT use ^ for disabling error message types,
 * as ^ will re-ENABLE the message type if it happens to be disabled already!
 */
error_reporting($old_error_reporting & ~E_STRICT);


// code that should not emit E_STRICT messages goes here


/*
 * Optional, depending on if/what code comes after.
 * Restore old settings.
 */
error_reporting($old_error_reporting);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top