Prestashop nie zapisuje zmian? Ukryte formatowanie z Worda może być problemem

Nie możesz zapisać zmian w opisach produktów lub treści CMS w Prestashop? Nie widzisz błędów, a serwer milczy? Przyczyna może leżeć w nieoczywistym miejscu – formatowaniu tekstu wklejonego z Worda. Przeczytaj, jak zdiagnozować i rozwiązać ten problem.


Objawy problemu

  • Zmiany w opisie produktu nie zapisują się.
  • Panel CMS działa, ale nowe treści nie są zapisywane.
  • Brak komunikatów błędów w interfejsie Prestashop.
  • Logi serwera (Apache/Nginx) w pliku error.log są puste.
  • Konsola przeglądarki nie pokazuje żadnych błędów.
  • Ręczna analiza bazy danych ujawnia „zanieczyszczone” dane w polu opisu.

Przyczyna problemu

Wklejanie tekstu z edytorów Microsoft (Word, Outlook, MS Teams itp.) do edytora Prestashop (np. TinyMCE) wprowadza ukryte tagi i atrybuty, takie jak <!-- [if gte mso 9]>, style="mso-fareast-language", czy mso-xxx. Prestashop nie zawsze filtruje te elementy, co może powodować problemy:

  • Serwery z włączonymi zabezpieczeniami (np. mod_security) mogą blokować podejrzane żądania POST, nawet po wyłączeniu mod_security, co komplikuje diagnozę.
  • Ukryte formatowanie może przekraczać limity pól w bazie danych (np. TEXT zamiast LONGTEXT).
  • Dane mogą zostać zapisane, ale ich ponowna edycja jest niemożliwa z powodu błędów w tle.
  • Włączenie display_errors na serwerze często nie pomaga, ponieważ problem leży w cichym odrzucaniu danych przez serwer lub aplikację.

Jak zdiagnozować problem?

  1. Sprawdź źródło HTML: W edytorze Prestashop kliknij opcję „Źródło” (lub „Source”). Jeśli widzisz nietypowe tagi i style (np. mso- lub <!--[if ...]>), to one są problemem.
  2. Zweryfikuj bazę danych: Użyj phpMyAdmin, aby przejrzeć pole opisu produktu w bazie (np. tabela ps_product_lang). Często znajdziesz tam ukryte style z Worda.
  3. Test z czystym tekstem: Skopiuj problematyczny tekst, wklej go do Notatnika (lub innego edytora tekstowego), a następnie wklej jako czysty tekst do Prestashop i spróbuj zapisać.

Jak rozwiązać problem?

Wklejaj czysty tekst: Używaj skrótu Ctrl+Shift+V lub wklejaj treść przez Notatnik, aby pozbyć się formatowania.

Jak zapobiegać w przyszłości?

Włącz tryb debugowania w Prestashop: W pliku defines.inc.php ustaw define('_PS_MODE_DEV_', 1);, aby logować zapytania SQL i żądania POST. Uwaga: Jeśli po ustawieniu PS_MODE_DEV na 1 nadal nie widzisz błędów, problem może leżeć w konfiguracji serwera (np. ciche odrzucanie żądań POST przez filtry bezpieczeństwa). Spróbuj włączyć dodatkowe logowanie w panelu administracyjnym Prestashop (Zaawansowane → Logi) lub skonfiguruj serwer do bardziej szczegółowego logowania.

Włącz display_errors na serwerze testowym: Ustaw w pliku php.ini opcję display_errors = On. Jeśli to nie ujawnia błędów, zweryfikuj logi PHP (error_log) lub skonfiguruj niestandardowe logowanie błędów w Prestashop.

Monitoruj logi serwera: Nawet po wyłączeniu mod_security, inne filtry bezpieczeństwa mogą blokować żądania POST. Sprawdź logi dostępu (access.log) i błędów (error.log) serwera.

Skonfiguruj limity pól tekstowych: Zwiększ limit pól w bazie danych (np. zmień TEXT na LONGTEXT w tabeli ps_product_lang), jeśli problem się powtarza.

Ogranicz formatowanie w edytorze WYSIWYG: Skonfiguruj TinyMCE, aby automatycznie usuwał podejrzane tagi (np. poprzez ustawienia wtyczki w Prestashop).

Edukuj zespół: Wklejaj tekst jako czysty (np. przez Notatnik lub Ctrl+Shift+V), aby uniknąć formatowania z Worda.

Podsumowanie

Jeśli Prestashop nie pozwala zapisać zmian w opisach produktów lub treści CMS, a Ty nie widzisz żadnych błędów, winowajcą może być formatowanie tekstu wklejonego z Worda. Ukryte tagi i style z edytorów Microsoftu mogą blokować zapis danych, a problem często pozostaje niewidoczny w logach serwera. Sprawdzaj źródło HTML, wklejaj tekst jako czysty i korzystaj z narzędzi do usuwania formatowania. Dzięki temu zaoszczędzisz czas i nerwy!

Zamów wycenę
Polityka prywatności | Regulamin
Pro-link 2005-2020