Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 21

Тема: Fatal error: malformed result

  1. #11

    По умолчанию

    Цитата Сообщение от Azcol Посмотреть сообщение
    Из консоли напрямую пробовали запускать скрипт?
    Да,

    Код:
    $ php /usr/local/ispmgr/addon/ordercall.php
    В начале скрипта стоит

    Код:
    $xmlall = file_get_contents("php://stdin");
    Соответственно, скрипт ожидает ввода данных. При вводе каких-либо данных далее ничего не происходит, что неудивительно, ведь дальше в коде идет

    Код:
    $xmlstr = simplexml_load_string($xmlall);
    Эта строчка получает правильно сформированную XML-строку и возвращает ее как объект. Есть подозрение, что на выходе не валидный XML потому, что на входе не то что нужно. Поясню более подробно, что было сделано:

    1. В правый верхний блок шаблона (там где настройки, помощь, выход и т.д.) была добавлена ссылка, при нажатии на которую должно открываться окно с формой. Я скопировал полностью ссылку из Настроек, т.к. она отвечает требованиям задачи, за тем исключением, что "?func=usrparam" заменил на свою функцию ordercall. Получилось:

    Код:
    <a href="#" onclick="mn_form_show('/billmgr?func=ordercall'); return false;" class="important">Заказать звонок</a>
    2. Далее сделал обычный плагин с описанием формы и обработчика, код привел в первом посте.

    Все. Может я что-то не так указал в ссылке или xml плагина, или еще что-то нужно где-то прописать?
    Хостинг в Казани, Москве, Новосибирске, Чехии.

  2. #12
    Banned
    Регистрация
    17.09.2010
    Сообщений
    8,675

    По умолчанию

    В общем все верно, раз ссылка есть и обработчик вызывается.

    Попробуйте из запустить плагин из консоли и скормить ему какую-нибудь XML, в ответ он должен вернуть XML иначе будет ошибка Mailformed result

  3. #13

    По умолчанию

    PHP выдал ошибку Call to undefined function mysqli_connect(), оказалось, что mysql не подключен. Из-за отображения сообщения об ошибке и формировался не валидный XML. Подключили MySQL, теперь окно отображается без ошибок. Спасибо за направление в нужную сторону, с этим разобрались.

    Ещё несколько вопросов: сейчас форма открывается как надо, но при нажатии на "ОК" ничего не происходит.

    1. Как вместо "ОК" написать "Отправить"?
    2. И самое главное: что нужно сделать, чтобы при нажатии на "ОК" окно закрылось, форма отправилась, а вместо формы отобразилось сообщение типа "Заявка отправлена"?
    Хостинг в Казани, Москве, Новосибирске, Чехии.

  4. #14
    Banned
    Регистрация
    17.09.2010
    Сообщений
    8,675

    По умолчанию

    Здравствуйте,

    1. Попробуйте в сообщениях формы определить сообщение с именем msg_ok
    2. В обработчик вызов приходит? В конце обработки попробуйте повесить пустую ноду ok к корневой ноде doc.
    Сообщение - заявка отправлена можно показать либо баннером пользователю, либо переадресовать его на другую фунцию, которая будет только показывать это сообщение

  5. #15

    По умолчанию

    Цитата Сообщение от Azcol Посмотреть сообщение
    Здравствуйте,

    1. Попробуйте в сообщениях формы определить сообщение с именем msg_ok
    Не получилось, осталось ОК.

    Цитата Сообщение от Azcol Посмотреть сообщение
    В конце обработки попробуйте повесить пустую ноду ok к корневой ноде doc.
    Можно пример? Я попытался с помощью xpath, но окно перестало вовсе открываться - постоянно вращается круг загрузки и все. И где можно увидеть полную структуру xml документа? В слепую сложно оперировать нодами.
    Последний раз редактировалось Вадим Ханаев; 15.06.2015 в 11:58.
    Хостинг в Казани, Москве, Новосибирске, Чехии.

  6. #16
    Banned
    Регистрация
    17.09.2010
    Сообщений
    8,675

    По умолчанию

    Цитата Сообщение от Вадим Ханаев Посмотреть сообщение
    Не получилось, осталось ОК.
    Покажите как делали.


    Цитата Сообщение от Вадим Ханаев Посмотреть сообщение
    Можно пример?
    Код:
    <?xml version="1.0" encoding="UTF-8"?>
    <doc><ok/></doc>
    Вы можете вывести в какой-нибудь лог данные получаемые вашим скриптом на вход. Примерную структуру можно посмотреть если вызвать какую-нибудь функцию с out=devel

  7. #17

    По умолчанию

    Цитата Сообщение от Azcol Посмотреть сообщение
    Покажите как делали.
    Код:
    <lang name="ru">
       <messages name="ordercall">
          <msg name="msg_ok">Отправить</msg>
        </messages>
      </lang>
    Цитата Сообщение от Azcol Посмотреть сообщение
    <doc><ok/></doc>
    В конце скрипта, перед выводом XML вставляется как вы и описали, проверил путем записи выходного XML в лог-файл, получилось:
    Код:
    <?xml version="1.0" encoding="UTF-8"?>
    <doc>Метадата,форма с полями<params><func>ordercall</func><operafake>846</operafake></params><ok/></doc>
    Но сейчас, как я упоминал выше, при нажатии на ссылку окно не открывается, а постоянно вращается круг загрузки и всё.
    Хостинг в Казани, Москве, Новосибирске, Чехии.

  8. #18
    Banned
    Регистрация
    17.09.2010
    Сообщений
    8,675

    По умолчанию

    Посмотрите консоль ошибок JavaScript и что пишется в логе. Возможно не получается запустить обработчик.

  9. #19

    По умолчанию

    Цитата Сообщение от Azcol Посмотреть сообщение
    Посмотрите консоль ошибок JavaScript и что пишется в логе. Возможно не получается запустить обработчик.
    В логе:

    Код:
    Jun 16 09:15:27 [ 5241:65] ESC[1;32mINFO Request [37.194.226.116][admin] 'operafake=315&func=ordercall'ESC[0m
    Jun 16 09:15:27 [ 5241:65] ../../src/mgr/core/main.cpp:578 ESC[1;33mDEBUG Begin simple actionESC[0m
    Jun 16 09:15:27 [ 5241:65] ../../src/mgr/core/session.cpp:1719 ESC[1mTRACE Replace params func to ordercallESC[0m
    Jun 16 09:15:27 [ 5241:65] ../../src/mgr/core/session.cpp:1719 ESC[1mTRACE Replace params operafake to 315ESC[0m
    Jun 16 09:15:27 [ 5241:65] ../../src/mgr/core/main.cpp:580 ESC[1;33mDEBUG After executeESC[0m
    Jun 16 09:15:27 [ 5241:65] ../../src/mgr/core/main.cpp:582 ESC[1;33mDEBUG End simple actionESC[0m
    В JavaScript консоли только это:

    Код:
    window.controllers является устаревшим. Не используйте его для определения UA. nsHeaderInfo.js:412:0
    NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsITaskbarTabPreview.invalidate]WindowsPreviewPerTab.jsm:406:0
    Хостинг в Казани, Москве, Новосибирске, Чехии.

  10. #20
    Banned
    Регистрация
    17.09.2010
    Сообщений
    8,675

    По умолчанию

    Можете показать все файлы вашего модуля? Попробуем завести на тестовом сервере

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •