Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    gestione degli errori, includere nella stringa anche l'url che è stato richiesto

    in pratica con la configurazione del php.ini gli errori vengono salvati nel file error_log. solo che non so mai qual'è effettivamente l'url che ha fatto problemi.

    c'è un modo per salvare anche l'url di richiesta oltre alla stringa di errore?

    forse usando set_error_handler? intanto provo un pò

  2. #2
    fatto. dovrebbe funzionare
    Codice PHP:

        
    function cerror($eno,$estr,$efile,$eline) {
            
    $type=array(1=>'Fatal',2=>'Warning',4=>'Parse',8=>'Notice');
            
            if ( isset( 
    $type$eno ] ) )
                
    $etype $type$eno ];
            else
                
    $etype 'Unknow';
            
            echo 
    '[php.error] [type|'.$etype.' n|'.$eno.'] ['.$estr.'] sul file ['.$efile.'] linea ['.$eline.'] per la ['.$_SERVER['REQUEST_URI'].']'."\n";
            
            
        }
        
    set_error_handler('cerror'); 

  3. #3
    però non capisco questa funzione viene richiamata anche quando l'errore è generato da una linea di codice che ha @

    e il numero dell'errore non è mai 0..

  4. #4
    Originariamente inviato da xnavigator
    però non capisco questa funzione viene richiamata anche quando l'errore è generato da una linea di codice che ha @

    e il numero dell'errore non è mai 0..
    up, ma tanto chi mi deve rispondere nessuno è cosi pazzo da gestire gli errori del proprio sito con una funzione custom

  5. #5
    ...e invece qualcun'altro di così pazzo c'è

    qual'è la riga che ti segnala l'errore anche se c'è @?

    Te lo chiedo perchè non dovrebbe fare così. Anche a me tempo fa mi capitò una cosa simile ma poi mi accorsi che ero io che mettevo l'@ nel punto sbagliato

  6. #6
    Originariamente inviato da yangtze
    ...e invece qualcun'altro di così pazzo c'è

    qual'è la riga che ti segnala l'errore anche se c'è @?

    Te lo chiedo perchè non dovrebbe fare così. Anche a me tempo fa mi capitò una cosa simile ma poi mi accorsi che ero io che mettevo l'@ nel punto sbagliato

    sono diversi ti faccio il caso più semplice

    l'incrementare una variabile che non è stata settata ancora allora di solito faccio

    @$var++;

    il numero di errrore passato alla funzione è il notice quindi non posso capire che c'era @

  7. #7
    puoi sempre usare la funzione error_reporting(...) che ti consente di limitare gli errori riportati.

    Ad esempio (riprendo la guida di PHP):

    codice:
    // Report simple running errors
    error_reporting  (E_ERROR | E_WARNING | E_PARSE);
    e poi fai seguire il tuo codice.

  8. #8
    no. io gli errori li voglio tutti perchè può capitare che sbaglio un nome di una variabile solo che quando metto @ non li voglio perchè l'ho messo apposta

  9. #9
    ok, ora ho capito

    in effetti temo che non ci sia soluzione, nel senso che non ti differenzia tra tipi diversi di notice, quelli con @ e quelli senza. Io avevo risolto perchè i notice alla fine non li tracciavo. In effetti volevo solo un logger di errori per vedere cosa succedeva al mio codice una volta dato in mano al cliente e i notice li consideravo solo un problema mio

    Se trovi una soluzione fammi sapere

  10. #10
    io non capisco anche perchè nella documentazione di php.net/set_error_handler

    dice: "

    E' importante ricordare che il gestore degli errori standard di PHP viene completamente saltato. La configurazione di error_reporting() non avrà effetto e il vostro gestore di errore sarà richiamato senza considerarla - in ogni caso sarà possibile leggere il valore corrente di error_reporting() ed agire di conseguenza. E' di particolare rilevanza il fatto che questo valore sarà 0 se la riga che causa l'errore viene precedura dall' operatore di controllo errore @.
    "

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.