Sopprimere fasullo PHP imap_open () Avviso: server insecuro pubblicizzato AUTH = PLAIN

Sto ottenendo un pasticcio di questi falsi avvisi nel mio file di registro, e mi piacerebbe sopprimerli senza sopprimere i messaggi legittimi:

Avviso PHP: Sconosciuto: PROBLEMA DI SICUREZZA: server insecuro pubblicizzato AUTH = PLAIN (errflg = 1) in Unknown alla row 0

(Mi sto connettendo a un servizio IMAP che sta solo ascoltando localhost su un server senza utenti di terze parti.)

Una cosa che puoi fare è usare le funzioni imap_errors e imap_alerts , posiziona questo codice prima di imap_close.

imap_errors(); imap_alerts(); 

Che cosa fanno queste funzioni è restituire tutti gli errori e gli avvisi che si sono verificati e quindi li svuota. Se non chiami queste funzioni, vengono emesse come notifiche quando viene chiamato imap_close () o la pagina muore.

Come ha detto l'inganno, non è davvero un messaggio "fasullo", significa solo che si tratta di una connessione in chiaro non crittografata. Ecco come puoi fare:

 $error = imap_errors(); if (count($error) > 1 || $error[0] != 'SECURITY PROBLEM: insecure server advertised AUTH=PLAIN') { // More than 1 error or not the expected error var_dump($error); throw new Exception('IMAP error detected'); } 

È ansible get tutti gli avvisi e gli errori mentre si sopprimono le notifiche utilizzando questo:

 error_reporting(E_ALL & ~E_NOTICE & ~E_USER_NOTICE); 

I flag di segnalazione degli errori a livello di bit sono:

 Bit di errore Scopo
 ################################################## #############################
 E_ALL Tutti gli errori e gli avvertimenti (non include E_STRICT)
 ################################################## #############################
 E_ERROR Errori irreversibili di runtime
 ################################################## #############################
 E_WARNING Avvisi in fase di esecuzione (errori non fatali)
 ################################################## #############################
 E_PARSE Errori di analisi del tempo di compilazione
 ################################################## #############################
 E_NOTICE Avvisi di runtime (questi sono avvertimenti che spesso risultano 
                     da un bug nel tuo codice, ma è ansible che lo fosse 
                     intenzionale (es. usando una variabile non inizializzata e 
                     basandosi sul fatto che è automaticamente inizializzato a 
                     una string vuota)
 ################################################## #############################
 E_STRICT Avvisi in fase di esecuzione, abilitare il PHP a suggerire modifiche a 
                     il tuo codice che garantirà la migliore integerperabilità 
                     e compatibilità diretta del tuo codice.
 ################################################## #############################
 E_CORE_ERROR Errori fatali che si verificano durante l'avvio iniziale di PHP
 ################################################## #############################
 E_CORE_WARNING Avvertimenti (errori non fatali) che si verificano durante il PHP 
                     avvio iniziale
 ################################################## #############################
 E_COMPILE_ERROR Errori fatali in fase di compilazione
 ################################################## #############################
 E_COMPILE_WARNING Avvisi in fase di compilazione (errori non fatali)
 ################################################## #############################
 E_USER_ERROR Messaggio di errore generato dall'utente
 ################################################## #############################
 E_USER_WARNING Messaggio di avviso generato dall'utente
 ################################################## #############################
 E_USER_NOTICE Messaggio di avviso generato dall'utente
 ################################################## #############################

Puoi anche impostare ignore_repeated_errors su TRUE / 1 in modo che non ignore_repeated_errors anche il tuo log.

 ini_set('ignore_repeated_errors',1);