Задать вопрос
@nimfai
Full stack developer

Как понять в чём может быть проблема? Не срабатывает if!?

Привет! Попросили помочь решить проблемы и вот уже три дня я в ступоре. Проект на ларавель. После регистрации пользователь должен оставить три отзыва о разных ресторанах. Для этого сделано(зачем не знаю) три роута и три рота на проверку.
Route::get('/post-review-one', 'AuthFinishController@review1');
Route::get('/post-review-two', 'AuthFinishController@review2');
Route::get('/post-review-three', 'AuthFinishController@review3');

Роуты проверки формы:
Route::post('/back-end/api/add-review/signup-finish', 'AuthFinishController@review1_validate');
    Route::post('/back-end/api/add-review/signup-finish/two', 'AuthFinishController@review2_validate');
    Route::post('/back-end/api/add-review/signup-finish/three', 'AuthFinishController@review3_validate');

Суть в чём. Проблема в мобильной версии. Каждая пфункция проверки формы и добавления отзыва сожержит такую проверку:
// Код проверки первого роута
return redirect('/post-review-two');

// Это из проверки второго
        $first_review_rid = Request::get('review_rid_1');

        if($param['restaurant_id'] != $first_review_rid) {
            $addReview = $reviewsModel->addReview($param);

            // Define current step and make redirect to the next step
            return redirect('/post-review-three');
        } else {
            return redirect('/already-posted/2');
        }

//а то из трутьего
$first_review_rid = Request::get('review_rid_1');
        $second_review_rid = Request::get('review_rid_2');

        if($param['restaurant_id'] != $first_review_rid && $param['restaurant_id'] != $second_review_rid) {
            $addReview = $reviewsModel->addReview($param);

            // Define current step and make redirect to the next step
            return redirect('/upload-image');
        } else {
            return redirect('/already-posted/3');
        }

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

Что происходит. Пользователь оставляет первый отзыв, его перенаправляет на вторую страницу. Тут пользователь добавляет отзыв на совершенно другое место, однако получает ошибку что уже добавлял отзыв(хотя он этого не делал), и одновременно отзыв добавляеся в БД. То есть получается проверка и прошла и нет? И на это зависает. Постит отзывы на разные места, получает ошибки что уже добавлено, но отзывы постятся.

Можете подсказать что за проблема? Возможно ли, что браузер кеширует редиректы? Хотя на свторой странице абсолютно новый юзер получает ошибку. В общем в в затруднении, а помочь хочется. Да и самому интересно.

Сайт имеет отдельную моильную версию, не адаптивку. Код одинаковый и там и там. Однако в десктоп версии подобного не наблюдается. Также тестил с компа и телефона на андроид и ни разу вопроизвести не удалось. Однако примерно у каждого пятого юзера это проиходит. У большинства проблемных юзеров iPhone.

Заранее спасибо!
  • Вопрос задан
  • 311 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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