Podczas próby zalogowania do panelu zarządzania widzimy białą stronę, jednak gdy włączymy pokazywanie błędów w pliku:
config/defines.inc.php
Pojawia się błąd:
Fatal error: Declaration of AdminDashboardControllerCore::setMedia() must be compatible with AdminControllerCore::setMedia($isNewTheme = false) in /var/www/controllers/admin/AdminDashboardController.php on line 539 Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalErrorException: Compile Error: Declaration of AdminDashboardControllerCore::setMedia() must be compatible with AdminControllerCore::setMedia($isNewTheme = false) in /var/www/controllers/admin/AdminDashboardController.php:539 Stack trace: #0 {main} Next LogicException: Request stack is empty in /var/www/app/bootstrap.php.cache:3224 Stack trace: #0 [internal function]: Symfony\Component\HttpKernel\HttpKernel->terminateWithException(Object(Symfony\Component\Debug\Exception\FatalErrorException)) #1 /var/www/vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php(606): call_user_func(Array, Object(Symfony\Component\Debug\Exception\FatalErrorException)) #2 /var/www/vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php(668): Symfony\Component\Debug\ErrorHandler->handleException in /var/www/app/bootstrap.php.cache on line 3224
Zawartość artykułu
Metoda #1 rozwiązania problemu
Wersja, która powoduje błąd to:
PHP Version 7.2.13
I prawdopodobnie też starsza.
Jaką masz wersje sprawdzisz w prosty sposób. Wgraj plik o nazwie p.php o zawartości:
<?php phpinfo(); ?>
do folderu głównego.
UWAGA! Po naprawie błędu koniecznie usuń ten plik. Ujawnia on bardzo dużo wrażliwych danych z Twojego serwera!
Aby naprawić błąd obniż wersję serwera. W naszym przypadku wystraczyło przestawić ją na wersję:
PHP Version 7.1.20
Metoda #2 rozwiązania problemu
Należy odp. zmienić pliki PHP aby ten błąd nie blokował możliwości zalogowania.
UWAGA! Przed wykonaniem zmian w plikach wykonaj ich kopię zapasową.
W pliku:
controllers/admin/AdminLoginController.php
Zmień kod:
public function setMedia()
na:
public function setMedia($isNewTheme = false)
Następnie:
public function viewAccess()
na:
public function viewAccess($disable = false)
W następnym pliku:
controllers/admin/AdminDashboardController.php
Zamień:
public function setMedia() { parent::setMedia();
na:
public function setMedia($isNewTheme = false) { parent::setMedia($isNewTheme);
Powinno to pomóc:)
W wersji Prestashop 1.7.2.4 opcja zmiany w plikach zadziałała. Problem pojawił się na stronie sklepu oraz na stronie Logowania do Panelu.
Brawo dla autora !