2010-09-24 14 views
12

Je développe un module en PHP pour Prestashop et j'ai du mal à essayer de déboguer du code. Chaque fois que quelque chose tombe, il n'affiche pas d'erreurs, juste une page vierge - soit sur le front où le module est accroché, ou sur la page du module back-end. J'essaye d'écrire dans une autre classe, ou une autre fonction mais elle ne l'aime pas du tout.Prestashop sans erreur/page blanche

Il est sur un serveur dev local, les erreurs PHP sont sur etc.

quelqu'un peut me dire d'une autre manière à des choses de débogage au lieu de commenter en code? Ou un moyen d'obtenir des codes d'erreur?

Merci pour votre aide à l'avance.

Répondre

24

Essayez d'ouvrir config/config.inc.php puis changer:

@ini_set('display_errors', 'off')

à

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


De PS 1.5+, vous devez ouvrir config/defines.inc.php et le changement:

define('_PS_MODE_DEV_', false);

à

define('_PS_MODE_DEV_', true);

+0

Impressionnant! Merci beaucoup –

+3

Dans PS 1.5.x, remplacez _PS_MODE_DEV_ par true dans config/defines.inc.php –

0

Check this out pour la solution finale! Tout d'abord, vous devez activer le rapport d'erreurs sur votre site Web.

1) Ouvrez le fichier config \ config.inc.php et trouver la ligne suivante:

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

2) Changement « off » « on », re-télécharger le fichier et vous rafraîchir la page.

Si cela ne vous aide pas, passez à l'étape suivante.

3) Ajoutez ce code en haut de votre fichier index.php à la racine de l'installation de PrestaShop et transférez-le de nouveau sur votre serveur. Ensuite, essayez d'accéder à votre site Web et le panneau d'administration.

<?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"); 
    } 
    } 
?> 

Après cette manipulation, vous trouverez le fichier appelé errors.csv dans le dossier où le fichier index.php est situé. Téléchargez et ouvrez le fichier errors.csv en utilisant n'importe quel éditeur de texte, vous y trouverez le journal des erreurs.

0

Accédez à la page de votre back-office.

avancée Params -> Performance -> Clean Cache (Eraser Icône)

1

je devais faire

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

Le chiffrement n'a pas été installé