Press "Enter" to skip to content

Presta Shop -wyświetlanie białej strony podczas logowania lub na innej podstronie

Admin 0

Dziś krótki artykuł, ale opisuje on problem dość często spotykany. Tak jak w tytule: w trakcie normalnego użytkowania sklepu często pojawia się “problem białej strony”.

Ale dlaczego?

Przede wszystkim należy zacząć od tego, że domyślnie błędy PHP w Presta Shop są tłumione. Oznacza to, że nie są wyświetlane ze względów bezpieczeństwa. Dlatego pojawia się zapobiegawczo biała strona, aby nie ujawniać co jest przyczyną błędu.

Co może być przyczyną błędu?

Może to wynikać z np.:

  • Aktualizacji oprogramowania na serwerze, którą wykonał administrator. Np. została znacząco zwiększona wersja PHP, a skrypty za tym nie podążają.
    -> NAPRAWA: Tutaj administator powinien albo przywrócić starą wersję albo skrypty powinny być odpowiednio zmienione przez programistę aby uwzględniały nową wersję.
  • Aktualizacji któregoś z modułów w Presta Shop wykonanej przez właściciela. Oprogramowanie na sklepie wymaga nowszej wersji (przeważnie PHP) i błąd w skrypcie wyłącza działanie sklepu.
    -> NAPRAWA: Należy przywrócić starą wersję modułu lub tymczasowo go usunąć z serwera lub zaktualizować wersję PHP na serwerze
  • Brak zainstalowanego wymaganego rozszerzenia na serwerze. Np. może być to popularny moduł szyfrujący źródła kodu ionCube Encoder (występuje często w modułach komercyjnych, aby chronić kod autora). Jeśli rozszerzenia nie ma na serwerze – błąd uniemożliwia dalsze działanie.
    -> NAPRAWA: administator powinien zainstalować ten dodatek na serwerze lub musimy zrezygnować z tego modułu (usuwając go z serwera)
  • Błędu PHP w składni któregoś skryptu.
    -> NAPRAWA: poprawienie składni przez programistę
  • Błędu w składni szablonu Smarty w pliku .tpl (np. niezamknięty znacznik /if )
    -> NAPRAWA: poprawienie składni przez programistę

Co zrobić aby usunąć błąd?

Przede wszystkim należy wyświetlić błąd, który jest ukryty.

Zaloguj się do FTP i znajdź plik:


config/defines.inc.php

Następnie zamień kod:


if (_PS_MODE_DEV_ === true) {
@ini_set('display_errors', 'on');
@error_reporting(E_ALL | E_STRICT);
define('_PS_DEBUG_SQL_', true);
} else {
@ini_set('display_errors', 'off');
define('_PS_DEBUG_SQL_', false);
}

na:


if (_PS_MODE_DEV_ === true) {
@ini_set('display_errors', 'on');
@error_reporting(E_ALL | E_STRICT);
define('_PS_DEBUG_SQL_', true);
} else {
@ini_set('display_errors', 'on');
define('_PS_DEBUG_SQL_', false);
}

Chodzi o zamienienie “off” na “on” w drugim wystąpieniu funkcji @ini_set

Gdy błąd już sie pojawi, będzie wiadomo co jest jego przyczyną. Najlepiej podeślij go do administratora serwera lub do nas na maila to postaramy Ci odpowiedzieć co jest jego przyczyną.

Po usunięciu błędu włącz ponownie tłumienie.

Uwaga, jak już sklep zostanie naprawiony cofnij zmiany wykonane w pliku:


config/defines.inc.php

Czyli zamień “on” na “off” w drugim wystąpieniu funkcji @ini_set. Poprawia to bezpieczeństwo sklepu. Po za tym nieistotne błędy też mogą być wyświetlane, co rzutuje na wizerunek sklepu.

Powodzenia!

Share This:

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *