diff --git a/src/EventListener/ClearFormDataListener.php b/src/EventListener/ClearFormDataListener.php new file mode 100644 index 0000000000..430590777a --- /dev/null +++ b/src/EventListener/ClearFormDataListener.php @@ -0,0 +1,42 @@ +isMasterRequest()) { + return; + } + + $request = $event->getRequest(); + + if ($request->isMethod('POST')) { + return; + } + + if (null === ($session = $request->getSession()) || !$session->isStarted()) { + return; + } + + unset($_SESSION['FORM_DATA']); + } +} diff --git a/src/Resources/config/listener.yml b/src/Resources/config/listener.yml index 747e6d4481..ea3a42c40d 100644 --- a/src/Resources/config/listener.yml +++ b/src/Resources/config/listener.yml @@ -41,6 +41,12 @@ services: # and lower than the header replay header (defaults to 7) - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 6 } + contao.listener.clear_form_data: + class: Contao\CoreBundle\EventListener\ClearFormDataListener + tags: + # The priority must be lower than the one of the Symfony save session listener (defaults to -1000) + - { name: kernel.event_listener, event: kernel.response, method: onKernelResponse, priority: -768 } + contao.listener.command_scheduler: class: Contao\CoreBundle\EventListener\CommandSchedulerListener arguments: