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

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

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

29 ответов

71 просмотр

сколько запросов и куда уходит при отправке формы? кто является родителем для 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 не напишешь мне...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
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
Карта сайта