0 Пользователей и 1 Гость просматривают эту тему.
  • 33 Ответов
  • 6870 Просмотров
*

devirus

  • Захожу иногда
  • 140
  • 6 / 0
Повторная отправка формы
« : 29.06.2014, 12:15:50 »
Думал это у меня что-то не так настроено, но проверил — у всех так на ЖШ.

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

Есть ли готовые решения? (что-то не нашел на форуме)

Сейчас изучаю корни проблемы, как работают запросы и что за странная штука вроде "84112981041deae..." в кукисах, которая сбрасывает сортировку при удалении.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Повторная отправка формы
« Ответ #1 : 29.06.2014, 12:30:24 »
Цитировать
Думал это у меня что-то не так настроено, но проверил — у всех так на ЖШ.
не у всех

Цитировать
Есть ли готовые решения? (что-то не нашел на форуме)
почитайте
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

devirus

  • Захожу иногда
  • 140
  • 6 / 0
Re: Повторная отправка формы
« Ответ #2 : 29.06.2014, 18:35:38 »
Почитал, посмотрел плагин продлевающий Expires Headers - чуть лучше, при возвращении назад с товара в категорию, не ругается.
Но при F5 категории по прежнему выскакивает окно "Повторная отправка"  (так же как и тут: http://demo.nevigen.com/cars.html)

Если перезагрузить страницу без POST - боюсь в данном случае сортировка сбросится.

...хотя нет, попробовал. Не думая сунул

Код
if (!empty($_POST)){
    header('Location: ' . $_SERVER['PREQUEST_URI']);
}

в form_filters.php

в фаерфоксе заработало как надо, в Chrome продолжает спрашивать...

Еще нашел в значения сортировки в php-сессии, значит каждый раз пост запрос не нужен? Нужно правильно сделать header('Location: '... ?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Повторная отправка формы
« Ответ #3 : 29.06.2014, 18:49:29 »
Expires Headers мне тоже не понравился. не тот путь решения как по мне выбран. кэш есть кэш, со всеми вытекающими...

Цитировать
значит каждый раз пост запрос не нужен? Нужно правильно сделать header('Location: '... ?
в общих чертах да, верно
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

devirus

  • Захожу иногда
  • 140
  • 6 / 0
Re: Повторная отправка формы
« Ответ #4 : 29.06.2014, 20:43:58 »
хм.
ну в общем
Код
if (isset($_POST['order'])){
    header('Location: ' . 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
}
помогает и от F5 и от "назад", причем даже если после вывода контента написать локейшн (везде говорят, что так нельзя и не будет работать).

Ищу в чем подвох, слишком всё хорошо и просто, так не бывает...  ;D
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Повторная отправка формы
« Ответ #5 : 29.06.2014, 22:47:17 »
лучше использовать JFactory::getApplication()->redirect(...)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dipner

  • Новичок
  • 4
  • 2 / 0
Re: Повторная отправка формы
« Ответ #6 : 03.03.2015, 20:18:57 »
offtop
« Последнее редактирование: 05.03.2015, 00:07:34 от dipner »
*

dipner

  • Новичок
  • 4
  • 2 / 0
Re: Повторная отправка формы
« Ответ #7 : 05.03.2015, 00:03:56 »
Решаем проблему назад и f5 Повторная отправка формы.
Сортировка товаров list_products/form_filter.php
В конце файла так:
Код
<input type="hidden" name="orderby" id="orderby" value="<?php echo $this->orderby?>" />
<input type="hidden" name="limitstart" value="0" />
</form>
<!-- Вписываем это -->
<?php if (isset($_POST['orderby'])){ ?>  <!—если не поставить, получим циклическую переадресацию -->
  <?php  header('Location: ' . 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']); ?>
<?php } ?>
______________________________________________________________________________________________
Mod_joomshopping_filters
Дописываем в конец Mod_joomshopping_filters/default.php:
Код
<input type="hidden" name="on" value="1" />   
</form>
<?php if (isset($_POST['on'])){ ?>
  <?php  header('Location: ' . 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']); ?>
<?php } ?>
Не знаю насколько правильно, но проблема повторной отправки формы решилась полностью.
_______________________________________________________________________________________________
Частичное решение проблемы plugin:
Expires Headers продление заголовков - избавляемся от проблемы повторной отправки формы при нажатии назад.
1. Скачиваем и устанавливаем.
2. Видим
Strict standards: Non-static method JApplicationCms::getMenu() should not be called statically, assuming $this from incompatible context in ...
Вольный перевод: метод getMenu() не является статическим, поэтому не может быть вызван как статический в виде JApplicationCms::getMenu()...
Решение
В expiresheaders.php
Заменить код типа
Код
$menu =& JSite::getMenu();
на
Код
$menu = JFactory::getApplication()->getMenu();
и вроде в javascript.php убрать &.
Настройки
Cache-Control Header Values ставим
Default - on
Cachable - no-Cache
must-revalidate - ok

Благодарю devirus.
« Последнее редактирование: 05.03.2015, 00:11:20 от dipner »
*

юрий 009

  • Захожу иногда
  • 341
  • 5 / 1
Re: Повторная отправка формы
« Ответ #8 : 01.04.2016, 19:00:43 »
день добрый.
скажите пожалуйста такая проблема с повторной отправкой только в 10-х человек на форуме. у всех все гладко?
вот я перепробовал все варианты решения проблемы что нашел на форуме и различные фильтры но результата ноль.
проблема стала после миграции на 3,5 как это разработчики смогли такое допустить.... или там заложенный определенный смысл ?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Повторная отправка формы
« Ответ #9 : 01.04.2016, 19:08:49 »
скажите пожалуйста такая проблема с повторной отправкой только в 10-х человек на форуме. у всех все гладко?
думаю такое у всех. где есть POST - есть такой нюанс. зависит от браузера, не все выдают предупреждение. но от версии Жумла не зависит точно. вероятно вы раньше не обращали внимание на это, либо использовали браузер, который раньше не выдавал такое предупреждение, а после одного из обновлений браузера начал. ну или например вариант, что у вас были хаки ядра в Ж2.5 которые делали какие то действия чтобы такой ошибки не было, а после обновления их уже нет. короче, по-умолчанию это у всех. если вас это конечно утешит :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

юрий 009

  • Захожу иногда
  • 341
  • 5 / 1
Re: Повторная отправка формы
« Ответ #10 : 01.04.2016, 19:40:07 »
по-умолчанию это у всех. если вас это конечно утешит :)
Скажите пожалуйста что за POST ? ... ядро 2,5 я не трогал (вы мне как-то писали что ядро трогать нельзя) раньше такого точно не было я бы увидел, это произошло после миграции с 2,5 на 3,5
подскажите пожалуйста как это решить ...
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Повторная отправка формы
« Ответ #11 : 02.04.2016, 09:40:47 »
Скажите пожалуйста что за POST ?

POST - массив данных, которые через форму передаются на сервер. например, форму фильтра. URL при методе POST не меняется, данные передаются так сказать в фоновом режиме. поэтому когда нажимаешь кнопку Back в браузере, браузер по сути переходит на ту же самую страницу, но по идее должен показать пользователю другую информацию. поэтому он и говорит, что не может понять, что же именно надо показывать.

подскажите пожалуйста как это решить

одним из вариантов исправления этого является метод, когда при переходе с POST данными этот POST-массив сохраняется в сессию, а посетителя редиректит на ту же самую страницу, но уже без POST. а потом при загрузке проверяется не POST, а уже сохраненный в сессию массив. это как раз тот вариант, который ранее описал devirus
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

юрий 009

  • Захожу иногда
  • 341
  • 5 / 1
Re: Повторная отправка формы
« Ответ #12 : 02.04.2016, 11:40:51 »
спасибо за помощь .. я уже три дня бился с этой отправкой ... Уже были серьезные намерения вернуться на 2,5 :)

всем огромное спасибо
*

юрий 009

  • Захожу иногда
  • 341
  • 5 / 1
Re: Повторная отправка формы
« Ответ #13 : 13.04.2016, 22:15:33 »
только что увидел поиск тоже просит повторную отправку
нужно внести аналогичные изменения как в предыдущие файлы

/modules/mod_jshopping_search/tmpl/default.php
Код
<input type="hidden" name="on" value="1" />   
</form>
<?php if (isset($_POST['on'])){ ?>
  <?php  header('Location: ' . 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']); ?>
<?php } ?>

/components/com_jshopping/templates/default_div/search/form.php
Код
<?php if (isset($_POST['orderby'])){ ?>  <!—если не поставить, получим циклическую переадресацию -->
  <?php  header('Location: ' . 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']); ?>
<?php } ?>
*

shuk

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Повторная отправка формы
« Ответ #14 : 06.02.2017, 12:26:33 »
Ребята, подскажите пожалуйста плохопонимающему: что и куда конкретно надо вписывать для фильтра и поиска.
*

victorantoniak

  • Moderator
  • 1572
  • 185 / 2
  • JoomShopping Team
Re: Повторная отправка формы
« Ответ #15 : 07.02.2017, 11:34:41 »
4.16.0

lib/default_config.php

$config->search_form_method = 'get';

*

shuk

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Повторная отправка формы
« Ответ #16 : 14.02.2017, 14:15:47 »
4.16.0

lib/default_config.php


$config->search_form_method = 'get';



вписал в конец файла, не помогло.
*

kit2m2

  • Живу я здесь
  • 3264
  • 267 / 0
  • Беру сайты на полное сопровождение
Re: Повторная отправка формы
« Ответ #17 : 14.02.2017, 18:43:33 »
Потому что нужно не вписывать, а изменить имеющееся значение - поменять POST на GET
Расширения для JoomShopping | Расширения на заказ | Сайты и магазины под ключ: Дизайн, Верстка, Программирование, СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ и JoomShopping 5+
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Повторная отправка формы
« Ответ #18 : 14.02.2017, 19:30:41 »
та по идее и в конец файла если вписать то должно было сработать. может версия ЖШ не та?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shuk

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Повторная отправка формы
« Ответ #19 : 18.02.2017, 14:00:58 »
та по идее и в конец файла если вписать то должно было сработать. может версия ЖШ не та?
действительно, не та версия ЖШ, не могу обновиться. Как решу вопрос отпишусь.
*

shuk

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Повторная отправка формы
« Ответ #20 : 23.02.2017, 12:21:17 »
Обновился до 4.16.0
нашел строку $config->search_form_method = 'get';
поменял пост на гет
не помогло
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Повторная отправка формы
« Ответ #21 : 23.02.2017, 13:21:54 »
а о каком фильтре речь?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shuk

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Повторная отправка формы
« Ответ #22 : 23.02.2017, 15:21:04 »
а о каком фильтре речь?
о стандартном и о поиске JoomShopping
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Повторная отправка формы
« Ответ #23 : 23.02.2017, 16:27:59 »
тогда странно, что не помогло. сайт покажите.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shuk

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Повторная отправка формы
« Ответ #24 : 24.02.2017, 16:59:52 »
тогда странно, что не помогло. сайт покажите.
http://automotozap.ru/
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Повторная отправка формы
« Ответ #25 : 24.02.2017, 18:08:45 »
еще бы фильтр найти...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shuk

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Повторная отправка формы
« Ответ #26 : 24.02.2017, 22:11:46 »
еще бы фильтр найти...
извиняюсь, http://automotozap.ru/motoshiny
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Повторная отправка формы
« Ответ #27 : 24.02.2017, 22:16:54 »
ну само собой, что не помогло... какой же это стандартный фильтр? :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

nevigen

  • Moderator
  • 10431
  • 862 / 25
  • http://n*****n.com
Re: Повторная отправка формы
« Ответ #28 : 24.02.2017, 22:20:28 »
а консоль вааще песня... бесконечная:)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

shuk

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Повторная отправка формы
« Ответ #29 : 26.02.2017, 11:46:21 »
ну само собой, что не помогло... какой же это стандартный фильтр? :)
это я другой фильтр пробовал, старый забыл вернуть, сейчас на месте
поиск тоже не работает
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Многократная отправка письма о статусе заказа после оплаты

Автор Lemonez

Ответов: 5
Просмотров: 699
Последний ответ 27.02.2019, 06:44:41
от draff
Отправка письма при статусе "Оплачено"

Автор lalalag

Ответов: 2
Просмотров: 613
Последний ответ 12.07.2018, 12:38:26
от lalalag
Не работает проверка формы заказа (* required)

Автор Vitaly

Ответов: 4
Просмотров: 2422
Последний ответ 23.05.2013, 00:30:15
от Vitaly
Invalid Token после заполнения формы регистрации. Как решить? Подскажите

Автор leadercs

Ответов: 19
Просмотров: 5023
Последний ответ 22.05.2013, 11:08:37
от nevigen
Отправка заказов на несколько ящиков

Автор Bartlebi

Ответов: 4
Просмотров: 1152
Последний ответ 21.01.2013, 19:03:41
от Bartlebi