Ипатьев, а что тут удивительного? такие вещи на откуп программистов. я вполне могу хотеть что бы у меня данные вставлялись не в рамках одной транзакции.
Max Logic,
З.Ы. Как вариант на будущее в таких случаях можете вообще рассмотреть простую вещь, если у нас пользователь авторизован - заголовок Expire не пихаем, если пользователь не авторизован - заголовок Expire вперед.
Вопрос какой то странный. Обычно надо реализовать какой то функционал, а вы просто хотите вставить код? А его дальнейшая работоспособность обязательна?
Max Logic, конечно. по этому смело в миддлеваре VerifyCsrfToken прописываете исключения, тогда и вы и сеошник радостно бежите к своему счастью. И в дальнейшем собственно подход такой же - что форма меняет, случится что нибудь страшное если ее вызовут скрыто от пользователя и со своими данными - ну тогда csrf обязателен, а если нет, то если не мешает - нехай будет, мешает - выпиливаем
Max Logic, а можете мне прикинуть вариант что произойдет если злоумышленик выполнит атаку на форму авторизации? Как он это сделает и что случится? Ну или на форму добавления в корзину?
Max Logic, Видите ли - csrf это не какое то магическое заклинание, и вообщем то предназначен для защиты изменения каких либо ЧУВСТВИТЕЛЬНЫХ данных. Использовать csrf для какой нибудь фильтрации на сайте - бесмысленно. Так как у вас идет борьба за то что доступно поисковику, а следовательно вряд ли является чувствительными данными - если уж форма доступна поисковику, возможно там csrf нахрен не вперся.
Вопрос поставлен собственно не правильно - браузер который уткнулся в то что страница не обновлялась просто ее не скачивает а берет из кеша - и что там произошло с токеном ему просто плевать.
lexstile, конечно. вы ж передаете уже id с фронта. В чем проблема к этому добавить цену? Пример запроса который приблизительно должен получиться я вам привел. Только придется потрахать мозги QueryBuilder'у и проверить не свихнется ли оптимизатор мускула.
lexstile, ну смысл такой. в mysql 8, и postgres можно приджойнить значения. например для мускула
select
sum(dishes.price*prices.quantity)
from
dishes
join (VALUES ROW(5,100), ROW(10,600)) AS quantities(dishe_id, quantity)
on quantities.dishe_id = dishes.id;
lexstile, нет конечно. Никакой in() порядок не сохраняет, для указания порядка используется order by. Все остальное будет возвращать так как бд удобнее. Однако что мешает запихнуть в order by сортировку на основе позиции в списке