[Risolto] Gestione Cdberror

Ciao a tutti, la mia domanda è se esiste un modo per intercettare i fallimenti di connessione (a quanto ho capito gestiti da yii tramite CdbError) ed evitare la schermata (vedi immagine) reindirizzando magari verso site/error. Grazie a tutti!!!

Quando pubblici un sito in produzione, devi togliere la modalità di debug. Devi fare una piccola modifica nel file index.php.

Grazie per la risposta!

ho provato a modificare nel file index

defined(‘YII_DEBUG’) or define(‘YII_DEBUG’,false); //mettendo false

il risultato è in figura… non è propriamente ciò che vorrei… devo fare altro per reindirizzare in "site/error"?

Sicuro che i parametri di connessione al db siano corretti?

Nicola l’errore è stato provocato da me quindi so qual’è il problema :D:smiley: il fatto è che vorrei evitare che in produzione, se il db diventasse irraggiungibile per un motivo X, tutta la webApplication diventi irraggiungibile, mostrando un errore nudo e crudo come quello dell’immagine.

In pratica non voglio risolvere il problema ma gestirlo.

Mi aspettavo un Yii::app()->db->checkConnection ma non sono riuscito a trovare nulla

:-[

Penso che tu possa o provare prima una connessione al db con tipo:


$connection=new CDbConnection($dsn,$username,$password);

try ... catch exceptions

Oppure seguire le indicazioni di questo thread

Risolto bastava togliere la modalità debug… ciò che mi usciva era frutto di un “die.” di troppo ;)

Comunque grazie a tutti!!!

Ciao salsero potresti pubblicare il codice che usi per ‘intercettare’ questo tipo di eccezione/errore di connessione al db ?

sarei interessato anch’io a gestirla ho una webapp online :) non si sà mai …

grazie

Puoi gestire il tutto nella action error.

Fai un print_r $error nella site/error, e vedrai che se hai una eccezione di database (puoi cambiare i parametri di login per avere un esempio) hai un messaggio di errore diverso, in base al quale puoi mostrare una view diversa.

Paskuale mi devi scusare se ho fatto un po’ di confusione… in pratica se è attiva la modalità debug viene mostrata la figura postata ad inizio conversazione, poi disattivando il debug Yii reinderizza automaticamente verso site/action quindi non ho dovuto fare niente ;) il problema della schermata bianca era dovuto a del codice inserito per delle prove ma che dimenticai di togliere. Morale della favola non ho scritto una riga di codice ;) Punto per Yii!!!