2010-09-24 30 views
12

Pracuję nad modułem w PHP dla Prestashop i mam trudny czas próbując debugować kod. Ilekroć coś przewróci się, nie wyświetla błędów, tylko pusta strona - albo na przednim końcu, gdzie moduł jest podpięty, albo na stronie modułu z tyłu.Prestashop brak błędów/pusta strona

Próbuję pisać w innej klasie lub innej funkcji, ale w ogóle jej to nie lubi.

To na lokalnym serwerze dev, błędy są na PHP itp

Czy ktoś mógłby mi powiedzieć w inny sposób do debugowania rzeczy zamiast zakomentowanie kodu? Lub jakiś sposób uzyskania kodów błędów?

Dzięki za pomoc z góry.

Odpowiedz

24

otwarcie Spróbuj config/config.inc.php a następnie zmienić:

@ini_set('display_errors', 'off')

do

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


PS 1.5+, trzeba otworzyć config/defines.inc.php i zmiany:

define('_PS_MODE_DEV_', false);

do

define('_PS_MODE_DEV_', true);

+0

Awesome! Bardzo dziękuję –

+3

W PS 1.5.x zmień _PS_MODE_DEV_ na true w config/defines.inc.php –

0

check out to do ostatecznego rozwiązania!

Przede wszystkim musisz włączyć zgłaszanie błędów w swojej witrynie.

1) Otwórz plik config \ config.inc.php i znaleźć następującą linię:

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

2) zmiana „off” na „on”, ponownie przesłać plik i odśwież stronę.

Jeśli to nie pomoże, przejdź do następnego kroku.

3) Dodaj ten kod do początku pliku index.php w katalogu głównym instalacji PrestaShop i ponownie prześlij go na swój serwer. Następnie spróbuj uzyskać dostęp do swojej witryny i panelu administracyjnego.

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

Po tej manipulacji znajdziesz plik o nazwie errors.csv w folderze, w którym znajduje się plik index.php. Pobierz i otwórz plik errors.csv za pomocą dowolnego edytora tekstu, znajdziesz tam dziennik błędów.

0

Przejdź do strony backoffice.

zaawansowane Params -> Wydajność -> Clean Cache (Eraser Ikona)

1

musiałem zrobić

apt-get install php5-mcrypt sudo apt-get install sudo apache2 serwis restart

PHP5-mcrypt

Szyfrowanie nie zostało zainstalowane

Powiązane problemy