170 похожих чатов

Добрый день! Нужна Ваша помощь с одной проблемой в Laravel

8.6.12
У меня есть HomeController, который отрабатывает на маршрут «/» и данный контроллер создает рандомное число, записывает его в сессию и возвращает шаблон home.blade.php.
В шаблоне home.blade.php есть форма и когда я делаю отправку данной формы, то прежде чем следующий FormController начнет обрабатывать форму, непонятно почему вызывается старый HomeController, создает новое рандомное число и перезаписывает его в сессии. И уже в FormController я вижу новое число, хотя мне нужно старое, которое было до отправки формы. Что это может быть? Перечитал кучу форумов, то нигде толкового ответа нет. Пробовал оборачивать роуты в Route::group(['middlewareGroups' => ['web']], function () {}), то не помогло.

29 ответов

64 просмотра

сколько запросов и куда уходит при отправке формы? кто является родителем для FormController?Как дебажите?

Это такой себе велосипед против CORS?

Юрий- Автор вопроса
Vitaliy Marchenko
сколько запросов и куда уходит при отправке формы?...

Один запрос — обычная отправка формы на action=»/submit», где отрабатывает Route::post('/submit', FormController@submit). Нет родителя у FormController, он просто находится в папке Controllers вместе с HomeController. Все максимально просто без заморочек.

Юрий- Автор вопроса
Igor
Это такой себе велосипед против CORS?

С этим все в порядке, @csrf установлен . Просто не понятно почему снова вызывается HomeController и уже после него необходимый FormController.

Юрий
С этим все в порядке, @csrf установлен . Просто не...

Я скорее пытаюсь понять ценность решения, в котором рандомное число записывается в сессию и потом отправляется через форму. Возможно здесь проблема не в решении, а в самой идеи и можно решить задачу более элегантно.

Юрий
Один запрос — обычная отправка формы на action=»/s...

что происходит после того как форма засабмитилась?у вас же обычная отправка формы, без ajax? Если так, то все верно, вы отправляете форму и после отправки страница перезагружается, соответсвенно вы попадаете опятьв / и отрабатывает ваш HomeController

Юрий
Один запрос — обычная отправка формы на action=»/s...

сделайте отправку формы без перезагрузки страницы

Юрий- Автор вопроса
Vitaliy Marchenko
что происходит после того как форма засабмитилась?...

Да, без ajax. Т.е. после отправки формы, я снова возвращаюсь на "/", а потом уже на "/submit", который является action у формы?

Юрий
Да, без ajax. Т.е. после отправки формы, я снова в...

после отправки формы у вас снова грузится / страница на кторой эта форма находится, соответсвенно вы снова попадаете с HomeController и снова генерите число

Юрий- Автор вопроса
Igor
Я скорее пытаюсь понять ценность решения, в которо...

Данное рандомное число через форму не отправляется, оно должно храниться в сессии до отправки формы и не меняться после отправки формы, ибо будет происходит проверка кастомной каптчи с помощью этого заранее сгенерированного числа.

Юрий- Автор вопроса

Не особо, с этим числом я буду сравнивать насколько правильно пользователь прошел каптчу и какой из вариантов выбрал.

Юрий
Не особо, с этим числом я буду сравнивать наскольк...

Каптча для проверки формы это всего лишь одно из решений и не самое удачное в 2023 году. Можно использовать спам базы айпишников для оценки степени рисков, медовые ловушки и все это не будет бесить клиентов необходимостью считать, выстраивать или сравнивать.

Юрий- Автор вопроса
Vitaliy Marchenko
что делает ваш action по сабмиту?

Проверяет кастомную каптчу и если все ок, то делает запись в базу данных и платит пользователю немного крипты.

Юрий- Автор вопроса
Igor
Каптча для проверки формы это всего лишь одно из р...

Это я понимаю, но заказчик так захотел)

Юрий
Это я понимаю, но заказчик так захотел)

Чисто субъективно, это не совсем работа заказчика обеспечивать техническую безопасность системы ) Даже если он в школе кодил на Pascal )

Юрий
Проверяет кастомную каптчу и если все ок, то делае...

как я вам и написал, после всех манипуляций в экшене, ваша страница перезагружается и снова грузится / роут

Юрий
Проверяет кастомную каптчу и если все ок, то делае...

А почему нельзя проверить что в сессии этот ключ уже записан? Почему надо перезаписывать его каждый раз?

Юрий- Автор вопроса
Igor
Чисто субъективно, это не совсем работа заказчика ...

Этот дядя захотел вставить в проект несколько готовых каптч и попросил написать кастомную метаматическую каптчу на основе изображений. Он сам разработчик и вот так захотел.

Юрий- Автор вопроса
Igor
А почему нельзя проверить что в сессии этот ключ у...

Дело в том, что этот ключ не сохраняется в изначальном виде, а перезаписывается после перезагрузки страницы. Но как я уже понял, то нужно сделать сабмит без перезагрузки и все будет ок)

Юрий- Автор вопроса

Понял, спасибо! Просто в данном случае хотел избежать использования js, но вижу что без него никак)

Юрий
Дело в том, что этот ключ не сохраняется в изначал...

или в экшене редирект на страницу с результатом - success/fail

Юрий
Понял, спасибо! Просто в данном случае хотел избеж...

современное веб приложение без js не напишешь мне кажется, что у вас в целом проблема в логике приложения, на каком этапе генерить число, в каком контроллере выводить форму и результаты будет ли правильно работать ваше приложение если я просто перезагружу страницу в браузере? число ведь снова новое сгенерится

Юрий- Автор вопроса
Vitaliy Marchenko
современное веб приложение без js не напишешь мне...

Просто форма отправляется на другой маршрут, не на тот же самый. Вот в этом-то и проблема)

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта