Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Из-за ограничения максимальной длины заголовка темы не смог сформулировать вопрос достаточно точно. Если же быть точнее, то вопрос будет "Как сделать редирект со страницы "Спасибо за заявку", если на неё пришли НЕ со страницы с формой заявки?".
На данный момент у меня такие маршруты:
// Страница с формой
Route::get('/feedback', [ 'as' => 'feedback',
'uses' => 'FeedbackController@renderFeedbackPage']);
// Отправить заявку
Route::post('/feedback', [ 'as' => 'sendFeedback',
'uses' => 'FeedbackController@sendFeedback']);
// Страница "Спасибо за заявку"
Route::get('/thanks', [ 'as' => 'thanks',
'uses' => 'FeedbackController@renderThanksPage']);
Если введённые данные будут валидны, произойдёт перенаправление на страницу `/thanks`. Однако, на неё можно прийти и по-другому, например, введя соответствующий URL в адресную строку. Это недопустимо, т. к. произойдёт ложный зачёт конверсии. Как сделать редирект со страниы `/thanks`, если на неё пришли не со страницы формы после успешной валидации?
Не в сети
Так проверяй http_referer и редиректь юзера куда нужно:
$referer = Request::server('HTTP_REFERER');
if( preg_match('//', $referer) ) {
redirect_to('');
}
Или более консервативный способ получения реферера:
$referer = $_SERVER['HTTP_REFERER'];
Точно не знаю(т.к. сам нуб во фреймворке), но может можно по другому чекать реферер, например по имени роута('as'=>'thanks').
Не в сети
Точно не знаю(т.к. сам нуб во фреймворке), но может можно по другому чекать реферер
если нужно получить предыдущий адрес, надо использовать \URL::previous() – у него преимущество в том, что он использует также адреса, которые сохраняются в сессии, то есть он работает даже если у пользователя стоит какой-то лютый анонимайзер, который удаляет рефереры из запросов (редкость, но случается)
Не в сети