Компонент AjaxForm

Доброго времени суток!

Хотел спросить поддерживается ли у вас в данный момент компонент AjaxForm modstore.pro/packages/utilities/ajaxform

Версия моего текущей modx revo 2.4.2.

Делаю в чанке вызов формы (стандартный):

[[!AjaxForm?
	&snippet=`FormIt`
	&form=`tpl.AjaxForm.example`
	&hooks=`email`
	&emailSubject=`Тестовое сообщение`
	&emailTo=`info@domain.com`
	&validate=`name:required,email:required,message:required`
	&validationErrorMessage=`В форме содержатся ошибки!`
	&successMessage=`Сообщение успешно отправлено`
]]
[[!AjaxSubmit?
	&snippet=`MySnippet`
	&form=`tpl.AjaxForm.example`
]]
И вся эта талмуда не работает. P.S. Чанки использовал дефолтные. Е-майл естественно менял на свой. Форму валидации не менял в принципе.

Спасибо заранее за ответы. С уважением, Андрей.
Андрей
29 декабря 2015, 12:08
modx.pro
4 404
-2

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

Григорий Коленько
29 декабря 2015, 15:18
0
А зачем второй вызов ajaxform?
Formit установлен?
    Андрей
    29 декабря 2015, 15:21
    0
    для надежности, потому первая форма вообще никак не реагирует. Компонент живой хоть?
      Григорий Коленько
      29 декабря 2015, 15:22
      0
      На сколько я знаю — да, он поддерживается.
        Андрей
        29 декабря 2015, 15:23
        0
        так чего стандартная форма даже не работает? Тупо с документации ставишь синтаксис тот же, и то не работает. Как это понимать?
          Григорий Коленько
          29 декабря 2015, 15:24
          0
          Formit установлен? Без него отсылать ничего не будет
            Андрей
            29 декабря 2015, 15:25
            0
            установлен естественно.
              Андрей
              29 декабря 2015, 15:25
              0
              ссылку могу дать свою даже: norway.tmweb.ru/index.php?id=1
                Андрей
                29 декабря 2015, 15:26
                -1
                форма там не кастомизированная, просто выводит и нихрена не работает. Поля блокируются, а толку ноль!
              Андрей
              29 декабря 2015, 15:24
              -1
              она еще как будто не очищается. Начинает отключаться и все висит, висит там. Аякс запрос что там может делать с такой элементарной операцией, как отправка письма?
                Воеводский Михаил
                29 декабря 2015, 15:28
                0
                Вместо возмущений посмотри логи: серверные, MODX, результаты запросов в консоли браузера.
                  Андрей
                  29 декабря 2015, 15:30
                  0
                  лог таков там:

                  [2015-12-29 14:41:28] (ERROR @ /index.php) An error occurred while trying to send the email:
                  [2015-12-29 14:41:30] (ERROR @ /index.php) An error occurred while trying to send the email:
                  [2015-12-29 14:43:16] (ERROR @ /index.php) An error occurred while trying to send the email:
                  [2015-12-29 14:43:22] (ERROR @ /index.php) An error occurred while trying to send the email:
                  [2015-12-29 14:43:56] (ERROR @ /index.php) An error occurred while trying to send the email:
                  [2015-12-29 14:44:02] (ERROR @ /index.php) An error occurred while trying to send the email:

                  И это странно… Учитывая, что там происходит на самом деле.
                    Воеводский Михаил
                    29 декабря 2015, 15:33
                    +1
                    Вот и разбирайся со своим хостингом, почему не проходит отправка письма. А в консоли браузера наверняка увидишь 500, ибо в противном случае AjaxForm разблокирует поля, когда получает 200 ответ.
                      Андрей
                      29 декабря 2015, 15:34
                      0
                      значит нужно обращаться в службу поддержки хостинга, к админу, что он там мне палки в колеса вставляет)). Спасибо за поддержку. Буду писать хостерам тогда.
                        Сергей Шлоков
                        29 декабря 2015, 18:18
                        1
                        0
                        Еще можно поставить QuickEmail и посмотреть, в чем ошибки.
                          Андрей
                          30 декабря 2015, 09:10
                          0
                          Вываливают ошибку по компоненту в консоль:

                          Failed to load resource: the server responded with a status of 500 (Internal Server Error)

                          либо второй вариант:

                          500 (Internal Server Error)

                          У меня вопрос, Так где же сокрыта ошибка у хостер ли или в скриптах компонента?
                            Сергей Шлоков
                            30 декабря 2015, 09:15
                            0
                            Если 500, то хостер тут не причем. Попробуйте вызвать так
                            [[!QuickEmail? &debug=`1`]]
                            Андрей
                            30 декабря 2015, 09:17
                            0
                            я говорю про компонент Ajax, мне в переписке выше писали про хостера вчера. Сейчас тогда пробовать буду QuickEmail.
                            Сергей Шлоков
                            30 декабря 2015, 09:19
                            0
                            Могу глянуть внутрь. Если есть возможность, кидайте доступ к личку.
                            Андрей
                            01 января 2016, 16:02
                            0
                            Напишите свой почтовый ящик, я вам скину доступ к личке. Вы сами ознакомитесь с ЧПУ данного сайта и тем как все там работает.
                            Андрей
                            30 декабря 2015, 09:59
                            0
                            Сообщение проходит, хотя и на дефолтный почтовый ящик. У меня вопрос тогда, где там чанк прикручивать с самой формой отправки данных? Сначала использовал стандартную FormIt, потом я решил использовать Ajax компонент, но он не работает. А QuickEmail — имеет формы для забивания данных? Есть пример такой? Искал в сети — не нашел.
                      Андрей
                      30 декабря 2015, 08:34
                      -1
                      Ребята, ну что я написал хостеру, а он валит на ошибку в скриптах вашего компонента, хотя он рабочий. Так где же правда тут?
                      Алексей Федоров
                      30 декабря 2015, 09:35
                      0
                      Теоретически это может быть проблема с правами. Попробуй поставить 755, если стоит иное. Читал комменты ниже, если попеременно выдает то 500, то 200, самый очевидный вывод, что блокирует неавторизованного пользователя (на хостинге!), а разрешает после каких-то манипуляций в кабинете хостера, пока сессия актуальна, сервер разрешает исполнение файла извне. Как только прошло, к примеру, 20 минут — получаем неавторизованного на хостинге человека и соответственно блок исполнения php-скрипта. С другой стороны — скрипт пытается отправить сообщение, то есть вроде как исполняется, так что кто его знает.
                        Андрей
                        30 декабря 2015, 10:13
                        0
                        смотрю логи, там такие строки:

                        [Wed Dec 30 08:44:25 2015] [error] [client 5.128.35.72] PHP Fatal error: Cannot use object of type AjaxForm as array in /home/n/norway/modx/public_html/core/components/ajaxform/model/ajaxform/ajaxform.class.php on line 94, referer: norway.tmweb.ru/index.php?id=1
                        [Wed Dec 30 08:54:13 2015] [error] [client 5.128.35.72] PHP Fatal error: Cannot use object of type AjaxForm as array in /home/n/norway/modx/public_html/core/components/ajaxform/model/ajaxform/ajaxform.class.php on line 94, referer: norway.tmweb.ru/index.php?id=1
                        [Wed Dec 30 09:01:06 2015] [error] [client 92.53.115.234] PHP Fatal error: Cannot use object of type AjaxForm as array in /home/n/norway/modx/public_html/core/components/ajaxform/model/ajaxform/ajaxform.class.php on line 94, referer: norway.tmweb.ru/index.php
                        [Wed Dec 30 09:05:48 2015] [error] [client 92.53.115.234] PHP Fatal error: Cannot use object of type AjaxForm as array in /home/n/norway/modx/public_html/core/components/ajaxform/model/ajaxform/ajaxform.class.php on line 94, referer: norway.tmweb.ru/index.php?
                        [Wed Dec 30 09:06:32 2015] [error] [client 92.53.115.234] PHP Fatal error: Cannot use object of type AjaxForm as array in /home/n/norway/modx/public_html/core/components/ajaxform/model/ajaxform/ajaxform.class.php on line 94, referer: norway.tmweb.ru/index.php?
                        [Wed Dec 30 09:51:30 2015] [error] [client 5.128.35.72] PHP Fatal error: Cannot use object of type AjaxForm as array in /home/n/norway/modx/public_html/core/components/ajaxform/model/ajaxform/ajaxform.class.php on line 94, referer: norway.tmweb.ru/index.php?id=1
                        [Wed Dec 30 09:54:28 2015] [error] [client 5.128.35.72] PHP Fatal error: Cannot use object of type AjaxForm as array in /home/n/norway/modx/public_html/core/components/ajaxform/model/ajaxform/ajaxform.class.php on line 94, referer: norway.tmweb.ru/index.php?id=1

                        Проблема с компонентом все же. Что там может неверно работать в компоненте?
                          Алексей Федоров
                          30 декабря 2015, 10:54
                          0
                          ага))) теперь видно, что проблема в строке 94 ;) Сейчас гляну, что там такое… Нарыл вот это:
                          93      public function process($action, array $fields = array()) {
                          	    94	    if (!isset($_SESSION['AjaxForm'][$action])) {
                          	    95		 return $this->error('af_err_action_nf');
                          	    96	}
                          Гугл подсказал, что
                          isset() работает только с переменными, поэтому передача в качестве параметров любых других значений приведет к ошибке парсинга. Для проверки определения констант используйте функцию defined().
                          Дальше ждем комментов спецов по php. Если в массиве параметры передается записываются не как переменные, то… ммм… я не знаю) Удаление-повторная установка проблемы не решает? И может версия php слишком новая (на счет старой вряд ли, там поддержка от 5.3 идет, насколько помню). Был у меня случай, когда сайт сломался, а в чем дело непонятно. После общения с поддержкой удалось выяснить, что скрипт использует элементы, которые удалены в php 5.5, пришлось переводить на 5.4 — все заработало. Возможно та же канитель.
                            Андрей
                            30 декабря 2015, 13:00
                            -5
                            странно просто это, берешь компонент с официального сайта, а там такие грязные баги. Это что такое)? Версия php 5.3, так что проблем с этим у меня нет. Зачем тогда вообще выкладывать компонент на дистрибутив, если он не работает?)
                              Василий Наумкин
                              30 декабря 2015, 14:55
                              +2
                              Очень похоже на включенный register_globals.

                              Проверяй, отключай и извиняйся.
                              Андрей
                              30 декабря 2015, 17:23
                              +2
                              Офтоп:

                              На Timeweb-е register_globals включен по умолчанию если не ошибаюсь, работал на нём пару месяцев назад, выключал его в htaccess.

                              По теме:

                              AjaxForm рабочий 100%, на нескольких сайтах обновил до последней версии, всё нормально работает.

                              Просто хостинг нужен нормальный, а не говно timeweb.
                              Андрей
                              02 января 2016, 16:39
                              0
                              Как только начальнику объяснить, что выбрать другой хостинг надо? Это большая проблема. Проще разобраться в том, что же так там не работает. Если компонент рабочий, то извиняюсь сразу.
                              Владимир
                              02 января 2016, 16:41
                              0
                              Это один из самых рабочих компонентов.
                              А уметь объяснить начальнику- это и есть ПРОФЕССИОНАЛИЗМ!
                              Андрей
                              02 января 2016, 19:42
                              1
                              +1
                              В htaccess добавьте директиву:

                              php_flag register_globals off
                              99% что после этого все заработает.
                            Андрей
                            30 декабря 2015, 13:12
                            -5
                            Разработчик, что прикалывается таким образом, что дает компонент, который нихрена не работает и выдает за рабочую лошадку? Это смешно просто.
                              Сергей Шлоков
                              30 декабря 2015, 13:18
                              1
                              +3
                              Я бы этому разработчику с большими ушами уши бы поотрутил.

                              Хулиганьё. :)
                          Сергей Шлоков
                          30 декабря 2015, 11:22
                          0
                          Давно устанавливали AjaxForm? Какая версия стоит сейчас?
                          Попробуйте деинсталлировать его, а потом установить заново.
                            Андрей
                            30 декабря 2015, 13:02
                            -4
                            Вчера поставил. Видимо, придется снести к черту опять и поставить заново. Жаль только времени потраченного впустую на решение чужих багов и их выявление. По коду видно, что там какая-то белиберда пишется на 93 строке.: функция с двумя параметрами, потом идет проверка на существование параметра в сессии. Второй параметр подпрограммы непонятно зачем там нужен… Короче, не знаю даже, что и думать тут.
                              Сергей Шлоков
                              30 декабря 2015, 13:20
                              +4
                              Да там в каждой строчке белиберда. Сам не знаю, почему у меня с первого раза всё завелось. Видимо где-то ошибка в ошибке. :)
                              Воеводский Михаил
                              30 декабря 2015, 13:37
                              +3
                              Сергей, читаю твои комментарии, и настроение повышается :)
                              Сергей Шлоков
                              30 декабря 2015, 13:46
                              +3
                              Так завтра Новый год! Чудеса разные! Например, взял и не напился. Чудо? Чудо. Тёща на Новый год уезжает к сестре. Чудо? Самое что ни на есть настоящее. :)
                              И всем желаю хороших чудес в Новом году!
                              Воеводский Михаил
                              30 декабря 2015, 14:02
                              +1
                              Главное пожелание на грядущий год: провести его именно с таким неиссякаемым зарядом позитива и оптимизма! Тогда все горы будут по плечу! ;)
                              Павел Гвоздь
                              30 декабря 2015, 15:21
                              +1
                              Да. Спасибо, Сергей! Уже второй день мне настрой подымаешь! :)
          Сергей Шлоков
          29 декабря 2015, 18:30
          2
          +2
          При использовании AjaxForm сообщения о точной ошибке заполнения не выводятся. Вот тут можно почитать, как сделать нечто подобное
            Григорий Коленько
            29 декабря 2015, 21:31
            0
            :)
            Андрей
            30 декабря 2015, 09:15
            -1
            в любом случае оно возвращает либо 500 ошибку, либо 200 в случае успеха. Мне нюансы и не так уже важны. Поля доступа все заполнены, а толку нету все равно. Маска емайла соблюдена, остальные поля текстовые и не имеют какой-то особого формата заполнения.
            Александр
            07 апреля 2016, 13:59
            0
            Добрый день, братцы!
            Подскажите в чем может быть проблема:
            При отправке формы ошибка на ios 9.3.1 > «Не могу найти указанный ключ формы action»
            На других версиях работает. На компьютере тоже ок.
            8|
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              46