diff --git a/system/typemill/Middleware/OldInputMiddleware.php b/system/typemill/Middleware/OldInputMiddleware.php index 2da4a77..8ceee8f 100644 --- a/system/typemill/Middleware/OldInputMiddleware.php +++ b/system/typemill/Middleware/OldInputMiddleware.php @@ -16,22 +16,38 @@ class OldInputMiddleware } public function __invoke(Request $request, RequestHandler $handler) - { + { + if(isset($_SESSION) && isset($_SESSION['old'])) + { + $this->view->getEnvironment()->addGlobal('old', $_SESSION['old']); + } + + $response = $handler->handle($request); + + # unset old values after the request is processed. This keeps old values also if there is a redirect to another page and before the page is rendered but removes the values on page refresh. if(isset($_SESSION)) { - if(isset($_SESSION['old'])) - { - $this->view->getEnvironment()->addGlobal('old', $_SESSION['old']); - unset($_SESSION['old']); - } - if(!empty($request->getParsedBody())) - { - $_SESSION['old'] = $request->getParsedBody(); - } + unset($_SESSION['old']); + + if(!empty($request->getParsedBody())) + { + $oldinput = $request->getParsedBody(); + + if(is_array($oldinput)) + { + foreach($oldinput as $key => $value) + { + if (stripos($key, 'pass') !== false) + { + unset($oldinput[$key]); + } + } + } + + $_SESSION['old'] = $oldinput; + } } - - $response = $handler->handle($request); - + return $response; } } \ No newline at end of file diff --git a/system/typemill/settings/defaults.yaml b/system/typemill/settings/defaults.yaml index fd62fd0..e8c45fb 100644 --- a/system/typemill/settings/defaults.yaml +++ b/system/typemill/settings/defaults.yaml @@ -1,4 +1,4 @@ -version: '2.17.3' +version: '2.17.4' title: 'Typemill' author: 'Unknown' copyright: false