diff --git a/admin/templates/update/main-view.php b/admin/templates/update/main-view.php index ebabea3..5cec692 100644 --- a/admin/templates/update/main-view.php +++ b/admin/templates/update/main-view.php @@ -52,15 +52,6 @@ -
-
- Changelog -
-
- ver ); ?> -
-
- + +
+
+ Changelog +
+
+ ver ); + // Usuń komentarze HTML i wszystkie tagi poza bezpieczną listą formatującą, + // żeby zdalny serwis nie mógł popsuć struktury strony (psuło to footer-script i przycisk "Wyczyść cache"). + $changelog = preg_replace( '//s', '', $changelog ); + $changelog = strip_tags( $changelog, '


diff --git a/change.md b/change.md index 1fd31d2..cca9d88 100644 --- a/change.md +++ b/change.md @@ -1,75 +1,56 @@ -# Zmiana: Fix przekierowania w summaryView +# Zmiana 3: Naprawa JS na stronie /admin/update/main_view/ (przyciski aktualizacji + Wyczyść cache) ## Plik -`autoload/front/Controllers/ShopBasketController.php` +`admin/templates/update/main-view.php` ## Problem -Po złożeniu pierwszego zamówienia, próba złożenia drugiego zamówienia powodowała przekierowanie na stronę poprzedniego zamówienia (`/zamowienie/{hash}`) zamiast na stronę podsumowania koszyka (`/koszyk-podsumowanie`). +Na podstronie `/admin/update/main_view/` nie działały: +- przycisk **„Aktualizuj do wyższej wersji"** (`#confirm`) +- przycisk **„Aktualizuj do najwyższej wersji"** (`#confirmUpdateAll`) +- globalny przycisk **„Wyczyść cache"** (`#clear-cache-btn`) z headera admina + +W konsoli przeglądarki **nie było żadnego błędu JS**. Kliknięcie powodowało jedynie dopisanie `#` do URL-a (`/admin/update/main_view/#`). ## Przyczyna -W metodzie `summaryView()` był guard sprawdzający sesyjny klucz `order-submit-last-order-id`. Jeśli istniał (a istniał po każdym złożonym zamówieniu), metoda od razu redirectowała na stronę starego zamówienia — nigdy nie dochodziło do `createOrderSubmitToken()`, które czyści ten klucz. +W szablonie znajdowało się pobieranie zdalnego changeloga przez `file_get_contents` z `https://shoppro.project-dc.pl/updates/changelog.php`: -## Co usunięto -Usunięto blok (dawne linie 279-290): ```php -$existingOrderId = isset( $_SESSION[ self::ORDER_SUBMIT_LAST_ORDER_ID_SESSION_KEY ] ) - ? (int)$_SESSION[ self::ORDER_SUBMIT_LAST_ORDER_ID_SESSION_KEY ] - : 0; -if ( $existingOrderId > 0 ) -{ - $existingOrderHash = $this->orderRepository->findHashById( $existingOrderId ); - if ( $existingOrderHash ) - { - header( 'Location: /zamowienie/' . $existingOrderHash ); - exit; - } -} +ver ); ?> ``` -## Zabezpieczenie double-submit -Ochrona przed podwójnym wysłaniem formularza pozostaje nienaruszona w metodzie `basketSave()` — tam ten sam mechanizm działa poprawnie. +Odpowiedź zdalnego serwera zawierała niezbalansowany HTML (np. niezamknięty `