Laravel Header Expires — заголовки

Шпаргалка для веб-разработчика

Laravel Header Expires — заголовки

laravel

Здравствуйте, уважаемые посетители блога!

Я веду разработку интернет магазина. Используемый фреймворк — Laravel 5.2.

Возникла у меня следующая проблема: когда посететитель оформил заказ и редирект его перенаправил на страницу Thankyou Page, с благодарностями, результатом заказа, продуктами, ценой, количеством и прочим. После этого в контроллере идет очистка корзины.
Но! Посетитель жмет кнопку «Назад» в браузере и… Мы таки имеем тухлый вид! Нам снова открывается наша View с формой оформления заказа.

ОК, сказал я и добавил в контроллер, перед выдачей вьюхи

return view('order_confirm')

следующие строки


if( count( $basket )>0 ){
return view('order_confirm', ['data_p'=>$basket]);

}else {
return redirect('/');
}

О! Полегчало! Теперь проблема решена. По прямой ссылке на форму оформления попасть нельзя! Нас отправляет на главную, ведь корзина пуста!

Но предыдущая проблема осталась!

Немного напряг Google и добавил в самый верх вьюхи такое:


  //set headers to NOT cache a page
  header("Cache-Control: no-cache, must-revalidate"); //HTTP 1.1
  header("Pragma: no-cache"); //HTTP 1.0
  header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

И если вы думаете, что это помогло, то это глубоко не так. Жмем после оформления заказа «Назад», и меня опять летит на форму оформления!
И еще раз напряг Google, на это раз с добавкой Laravel.

Получилось!
Полный код выглядит так


 if( count( $basket )>0 ){
 // return view('order_confirm', ['data_p'=>$basket]);

 return \Response::view('order_confirm', ['data_p'=>$basket])->header('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
 }else {
 return redirect('/');
 }

Теперь, если клиент на странице ThankYouPage жмет кнопку браузера «Назад», его редиректит на главную.

Спасибо за внимание!

3 комментария

  1. baitle:

    Laravel Level 5, да так и есть, Шерлок

  2. Владимир:

    Получается если написать в урле любую ерунду + правильный id товара, то откроется товар? Что за ужас)

  3. Laravel Level 5:

    Походу вольный перевод вот этой статьи — https://www.toptal.com/laravel/restful-laravel-api-tutorial

Добавить комментарий для Ильшат Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *