Не могу найти указанный ключ формы (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
5 936
0

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

Григорий Коленько
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).
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.