2010-09-24 14 views
12

Sto sviluppando un modulo in PHP per Prestashop e sto avendo difficoltà a provare a eseguire il debug del codice. Ogni volta che qualcosa cade sopra non mostra errori, solo una pagina vuota - o sul front-end in cui il modulo è agganciato, o sulla pagina del modulo back-end.Prestashop nessun errore/pagina vuota

Sto provando a scrivere in un'altra classe o in un'altra funzione, ma a lui non piace affatto.

E 'su un server locale dev, gli errori di PHP sono ecc

qualcuno può dirmi qualsiasi altro modo per eseguire il debug roba invece di commentare fuori codice? O un modo per ottenere i codici di errore?

Grazie per il vostro aiuto in anticipo.

risposta

24

provare ad aprire config/config.inc.php e poi cambiare:

@ini_set('display_errors', 'off')

a

@ini_set('display_errors', 'on').


Da PS 1.5 +, è necessario aprire config/defines.inc.php e il cambiamento:

define('_PS_MODE_DEV_', false);

a

define('_PS_MODE_DEV_', true);

+0

Impressionante! Grazie mille –

+3

In PS 1.5.x cambia _PS_MODE_DEV_ in vero in config/define.inc.php –

0

assegno questo fuori per la soluzione finale!

Prima di tutto, è necessario abilitare gli errori di segnalazione sul proprio sito web.

1) Aprire il file di configurazione \ config.inc.php e trovare la seguente riga:

@ini_set(‘display_errors’, ‘off’);  

2) Change ‘off’ a ‘on’, ri-caricare il file e aggiornare la pagina.

Se non aiuta, andare al passaggio successivo.

3) Aggiungere questo codice all'inizio del file index.php nella root dell'installazione di PrestaShop e ricaricarlo sul server. Quindi prova ad accedere al tuo sito Web e al pannello di amministrazione.

<?php error_reporting(0); 
     $old_error_handler = set_error_handler("userErrorHandler"); 

     function userErrorHandler ($errno, $errmsg, $filename, $linenum, $vars) 
    { 
    $time=date("d M Y H:i:s"); 
    // Get the error type from the error number 
    $errortype = array (1 => "Error", 
         2 => "Warning", 
         4 => "Parsing Error", 
        8 => "Notice", 
        16 => "Core Error", 
        32 => "Core Warning", 
        64 => "Compile Error", 
        128 => "Compile Warning", 
        256 => "User Error", 
        512 => "User Warning", 
        1024 => "User Notice"); 
    $errlevel=$errortype[$errno]; 

    //Write error to log file (CSV format) 
    $errfile=fopen("errors.csv","a"); 
    fputs($errfile,"\"$time\",\"$filename: 
    $linenum\",\"($errlevel) $errmsg\"\r\n"); 
    fclose($errfile); 

    if($errno!=2 && $errno!=8) { 
    //Terminate script if fatal error 
    die("A fatal error has occurred. Script execution has been aborted"); 
    } 
    } 
?> 

Dopo queste manipolazioni troverete il file error.csv nella cartella in cui si trova il file index.php. Scarica e apri il file errors.csv usando un qualsiasi editor di testo, troverai il log degli errori lì.

0

Vai alla pagina del backoffice.

Params avanzate -> Prestazioni -> Clean Cache (Eraser Icona)

1

ho dovuto fare

aptitude install php5-mcrypt sudo aptitude install php5-mcrypt sudo service apache2 restart

La crittografia non è stata installata