Я бы начал с отделения логики контроллера от HTML-шаблона. Посмотрите на Timber, например: https://github.com/timber/timber
Тогда ваш шаблон страницы будет больше похож на контроллер, и вы могли бы избежать беспорядочного кода, обрабатывающего все в одном файле.
Ваш шаблон страницы может выглядеть так:
<?php
$data = Timber::get_context();
$data['page'] = $page;
if (isset($_POST['whatever']))
{
$data['whatever'] = 'It works!';
Timber::render('views/whatever-posted.twig', $data);
}
else
{
Timber::render('views/landing.twig', $data);
}
IMO - это намного чище код, чем путаница PHP / HTML