Не могу найти указанный ключ формы (action).

Возникает такая вот ошибка, появилась она недавно и на многих сайтах сразу примерно с месяц назад (заметил только сейчас, клиенты пожаловались что форма не работает). Для простоты пока ищу решение проблемы только на 1 сайте. Форма отправляться в Хроме, в остальных не работает.

Может это как-то связано с этим?

С 18 мая 2016 года администрацией mail.ru была включена строгая политика DMARC для всех почтовых ящиков в доменах почтового сервиса mail.ru, таких как *@(mail.ru/list.ru/inbox.ru/bk.ru/mail.ua), о чем предварительно сообщалось в пресс-релизе компании mail.ru:
corp.mail.ru/ru/press/releases/9593/

По этой причине сообщения с заголовками From (От кого) и указанием почтового ящика *@mail.ru, отправляемые не с почтового сервера mail.ru, к примеру, с использованием скриптов Вашего сайта, сразу отклоняются использующими проверку DMARC-политики серверами получателей и не могут быть доставлены.
Например, проверка DMARC производится на таких почтовых сервисах, как yandex.ru, mail.ru, gmail.com, yahoo.com и других.

Для решения вопроса доставки писем Вам следует отказаться от указывания почтовых ящиков компании mail.ru в поле From (От кого) в отправляемых Вами письмах или отправлять такие письма только с почтового сервера компании mail.ru.
UPD
Вызов снипета некешируемым решило мою проблему.
Viktor
22 июня 2016, 14:47
modx.pro
7 136
0

Комментарии: 32

Григорий Коленько
22 июня 2016, 23:06
0
Поставь в настройках путь куки /
И очисти таблицу сессий
    Viktor
    23 июня 2016, 12:37
    0
    И очисти таблицу сессий
    не помогло
    Поставь в настройках путь куки /
    поставил session_cookie_path /
    после этого даже в хроме перестало работать
    Здоров Александр
    23 июня 2016, 11:25
    0
    поддерживаю, у самого та же проблема…
      Сергей
      19 июля 2016, 14:52
      0
      Такая же ерунда на нескольких сайтах. Кто-нибудь решил эту проблему?
        Viktor
        19 июля 2016, 16:39
        +1
        похоже, настройки хостинга. но какие — хз
          Сергей
          19 июля 2016, 16:41
          0
          А хостинг не таймвеб?
            Viktor
            19 июля 2016, 16:42
            +1
            нет
              Сергей
              19 июля 2016, 17:02
              0
              Единственное что заметил- когда кэш почищу, ошибка на некоторое время исчезает.
        Serg
        20 июля 2016, 17:40
        0
        Та же проблема Как отключить эту проверку ключа? Или это нарушит безопасность? Устанавливал AjaxForm после регистрациии с ключом от modstore.pro
          Александр
          22 июля 2016, 15:33
          0
          Аналогично!

          У меня форма входа, где логином является почта. Сегодня у одного из пользователей никак не получается войти на сайт. — («не могу найти указанный ключ...»).

          У пользователя Хром. Пробовал войти сам под этим пользователем — всё хорошо и в хроме и в опере.

          Логин ...@mail.ru. Неужели действительно как-то связано?
            Александр
            22 июля 2016, 15:53
            0
            вообщем главная сейчас проблема, что не могу воспроизвести эту ошибку ;( ибо у меня всё гуд, а пользователь бедолага — без доступа. Куда копать?
            Спасибо.
              Viktor
              07 августа 2016, 17:26
              0
              попробуй разлогиниться с админа и отправить форму
            Василий Столейков
            27 июля 2016, 06:13
            0
            Хостинг от modhost.pro, та же проблема с AjaxForm + собственный сниппет который добавляет страницу + регистрирует пользователя, хотя до этого всё работало правильно.
            Причём у меня не предусмотрена отправка письма (хотя поле email присутствует).
            Даже пустая незаполненая форма вызывает ту же самую ошибку, вместо стандартной проверки заполненности всех полей.
            Кто-нибудь нашел причину проблемы?
              Василий Столейков
              27 июля 2016, 06:24
              0
              Интересно, что эта ошибка у меня появляется только в Chrome 49.0.2623.112 m + XP (старая версия хрома для windows xp), а в Linux Ubuntu + Firefox всё работает исправно!
              Может это в старых версиях хрома такое? (не было ещё возможности проверить на новых)…
                Сергей
                23 августа 2016, 11:43
                0
                У меня и в опере такая проблема, к сожалению(
                  Илья Уткин
                  23 августа 2016, 11:53
                  2
                  +2
                  Попробуйте у ресурса, на котором происходит такая фигня, убрать галочку «Кешируемый»
                    Viktor
                    14 ноября 2017, 14:34
                    0
                    Помогает, но ведь это не решение проблемы.

                    Я, по-моему, понял как баг проявляется:

                    1) чистим кэш;
                    2) завершаем все сеансы;
                    3) заходим на сайт, например с хрома, CTRL+F5 (на всякий случай);
                    4) отправляем форму — все нормально;
                    5) заходим на сайт с другого браузера, CTRL+F5, отправляем форму — выдает ошибку.

                    Если в 3 пункте заменить хром на другой браузер — форма будет работать только в нем, а в других нет.

                    Проблема в сессиях?

                    Кто сможет разобраться и пофиксить? Даже денег заплачу.
                      Василий Наумкин
                      14 ноября 2017, 15:34
                      +1
                      AjaxForm всегда должен вызываться некэшированным.
                        Viktor
                        14 ноября 2017, 16:49
                        0
                        Похоже в этом и была проблема, спасибо. Подумать только… аж стыдно.
              Viktor
              07 августа 2016, 17:28
              0
              Василий Наумкин, куда копать с этой проблемой?
                Александр
                21 декабря 2016, 10:59
                0
                Кто ни будь решил данную проблему? такое же появилось после обновления ревы до 2.5.2
                  Константин Ильин
                  21 декабря 2016, 12:46
                  0
                  Хостинги: таймвеб, бигет
                  После обновления:
                  У меня было такое, когда я в ручную вызвал инициализацию:
                  <script type="text/javascript">AjaxForm.initialize({"assetsUrl":"\/assets\/components\/ajaxform\/","actionUrl":"\/assets\/components\/ajaxform\/action.php","closeMessage":"\u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0432\u0441\u0435","formSelector":"form.ajax_form","pageId":687});</script>
                  Выводилось две ошибки после обновления. Соответственно удалил ручной вызов,

                  — В некоторых случаях, в ручную прописывал для форм action="[[*uri]]"

                  — Была проблема на рег.ру, там нихера не хотел работать и не заработал.

                  — А также я всегда в .htaccess разкоментироваю php_flag register_globals Off

                  Ну и после обновления надо чистить кеш :)
                    Сергей Малышев
                    16 января 2017, 17:40
                    +1
                    Была проблема «Не могу найти указанный ключ (action)».
                    После того, как разобрался, оказалось, что по ошибке вместо
                    вызова чанка со сниппетом AjaxForm вызвал чанк [[$tpl.AjaxForm....]].

                    Может кому мои грабли пригодятся.
                      Альберт
                      24 мая 2017, 18:08
                      0
                      Если у кого возникнет подобная ошибка, проверьте форму на незакрытые теги/ошибки кода.
                      Как пример, для тестирования можете взять любую простую форму вида:

                      <form name="form" action="#" method="POST">
                      <input type="submit" value="Send" />
                      </form>
                      Если она работает — то и ваша должна, просто в ней самой могут присутствовать ошибки.
                        ALEXANDER
                        26 июня 2017, 23:21
                        0
                        Как вариант, мне в некоторых случаях помогло добавление в форму action="[[~[[*id]]]]"
                          Greg
                          12 июня 2019, 19:57
                          0
                          кто понял как с этим бороться, форумы перечитал, не помогает.
                          Пробовал:
                          <form name="form" action="#" method="POST">
                          <input type="submit" value="Send" />
                          </form>
                          Ошибка сотается.

                          Пробовал
                          action="[[~[[*id]]]]"
                          — ошибка остается

                          Код:
                          <div class="contactform">
                              [[!AjaxForm?
                                  &form=`tpl.form`
                                  &snippet=`FormIt` 
                                  &hooks=`FormItSaveForm`
                                  &formName=`Форма обратной связи`
                              ]]
                          </div>
                          tpl.form
                          <form name="form" action="#" method="POST">
                          <input type="submit" value="Send" />
                          </form>
                            Viktor
                            12 июня 2019, 20:11
                            0
                            проверь чтобы все формы на странице и на сайте вызывались некэшируемыми
                            !AjaxForm
                              Greg
                              13 июня 2019, 01:48
                              0
                              На всем сайте одна форма, ее код сократил до одной кнопки, приведен выше.
                                Greg
                                13 июня 2019, 14:24
                                0
                                Проблема в контекстах
                                У меня два языка

                                ТАК ВСЕ РАБОТАЕТ:
                                web - en 
                                sitename.com/
                                
                                ru - ru 
                                sitename.com/ru/
                                плагин переключения:
                                <?php
                                if($modx->context->get('key') != "mgr") {
                                    switch ($_REQUEST['cultureKey']) {
                                        case 'ru':
                                        $modx->switchContext('ru');
                                        break;
                                        
                                        default:
                                        $modx->switchContext('web');
                                        break;
                                    }
                                /* Очищаем GET-параметр чтобы не допустить появлении ссылки вида cultureKey=xy при генерации URL других компонентов */
                                unset($_GET['cultureKey']);
                                }
                                .htaccess
                                RewriteCond %{REQUEST_FILENAME} !-d
                                RewriteCond %{REQUEST_FILENAME} !-f
                                RewriteRule ^(ru|en)/favicon.ico$ favicon.ico [L,QSA]
                                
                                RewriteCond %{REQUEST_FILENAME} !-d
                                RewriteCond %{REQUEST_FILENAME} !-f
                                RewriteRule ^(ru|en)/assets(.*)$ assets$2 [L,QSA]
                                
                                RewriteCond %{REQUEST_FILENAME} !-f
                                RewriteCond %{REQUEST_FILENAME} !-d
                                RewriteRule ^(ru|en)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
                                Так не работает:
                                Но мне нужно поменять web -> sitename.com/en/ а ru оставить -> sitename.com/ru/ ит по-умолчанию сделать sitename.com/ru/

                                В контексте меняю:
                                web - en 
                                sitename.com/en/
                                ru - ru 
                                sitename.com/ru/
                                плагин переключения:
                                плагин:
                                <code><?php
                                if($modx->context->get('key') != "mgr") {
                                    switch ($_REQUEST['cultureKey']) {
                                        case 'en':
                                        $modx->switchContext('web');
                                        break;
                                        
                                        default:
                                        $modx->switchContext('ru');
                                        break;
                                    }
                                /* Очищаем GET-параметр чтобы не допустить появлении ссылки вида cultureKey=xy при генерации URL других компонентов */
                                unset($_GET['cultureKey']);
                                }
                                Сайт работает как задумано, AjaxForm перестает работать и выдает
                                Не могу найти указанный ключ формы (action).
                                  Greg
                                  12 августа 2019, 12:13
                                  0
                                  Нет, что то опять не то. Через время опять перестала работать.
                                  Читал похожие темы нашел около 6-8.
                              Александр Мельник
                              12 августа 2019, 15:21
                              0
                              была недавно такая проблема.
                              В файерфокс форма отправляется. В хроме — не найден ключ.
                              Помог некешироавнный вызов AjaxForm вместо кешированного.
                                Greg
                                13 августа 2019, 18:24
                                0
                                А у Вас контексты есть?
                                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                32