Возврат на предыдущую страницу методом PHP в MVC
Есть страница пользователя user/id, шаблон mvc. На страницу пользователя можно попасть через поиск на сайте, либо через личные контакты, либо введя id в строку браузера. На странице пользователя есть поле отправки ему короткого сообщения. Как сделать так что бы после ввода и отправки этого сообщения отправитель сообщения переправлялся на предыдущую страницу или на главную, если был прямой заход на профиль. Пробовал через $_SERVER['HTTP_REFERER'], но проблема в том что если обновить страницу пользователя, то переадресация идет на саму страницу и вызывает ошибку mvc. Интересует решение только через PHP, в какую сторону вообще 'глядеть'
Ответы (1 шт):
Если у вас реализована полноценная архитектура MVC-приложения, то у вас должен быть роутинг, то получится что-то подобное и будет работать корректно, вы же можете свою переменную $_SERVER['HTTP_REFERER'] проверять на соответствие текущей странице (код только для примера):
/**
* @var bool $activeCurPage
*/
$activeCurPage = preg_match ("/$_SERVER [REQUEST_SCHEME]://$_SERVER [HTTP_HOST]$_SERVER [REQUEST_URI]/", $_SERVER ['HTTP_REFERER']);
if (!$activeCurPage) {
redirect (createRedirectUrl ($_SERVER ["REQUEST_URI"]));
} else {
redirect (createRedirectUrl ('/main')); // ну или как там у вас
}