1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Получение данных из БД во внешнем скрипте с $_POST

Тема в разделе "Вопросы и ответы по XenForo Framework", создана пользователем Alex Gludo, 01.12.2015.

Загрузка
  1. Alex Gludo

    Alex Gludo Bazinga!

    Регистрация:
    24.01.11
    Сообщения:
    484
    Симпатии:
    293
    Возникла задача, которую никак не получается решить.

    Есть некий внешний файл.
    Он же выводит на внешнем сайте форму с кнопкой (инклюдится в шаблон).
    При нажатии на которую срабатывает скрипт <script>, который выводит другую форуму и т.д.
    Все это прекрасно работает до тех пор, пока я не пытаюсь передать в этот файл некие данные из БД Xenforo.

    Если делаю так:
    PHP:
    <?php

    include $_SERVER['DOCUMENT_ROOT']."/exttraapi/vendor/exttraapi-autoloader.php";

    use 
    Exttraapi\SDK\API\ExttraapiClient;
    use 
    Exttraapi\SDK\API\ExttraapiRequest;

    $startTime microtime(true);
    $fileDir dirname(__FILE__);
    require(
    $fileDir '/xf/library/XenForo/Autoloader.php');
    XenForo_Autoloader::getInstance()->setupAutoloader($fileDir '/xf/community/library');
    XenForo_Application::initialize($fileDir '/xf/community/library'$fileDir);
    XenForo_Application::set('page_start_time'$startTime);
    $db XenForo_Application::get('db');
    $things $db->fetchAll("*********");
    $result $things;

    if(
    $_POST){

    $data $result;

    ...................................

    }
    ?>

    <form class="myform" method="POST">
    .................my form............
    </form>

    <?php if($_POST){ ?>
    <script>
    ....................................
    </script>

    <?php ?>
    То переменную $result передать не удается.
    Но и кроме того рушится шаблон сайта. Т.е. всё, что идет до формы <form class="myform" просто срезается - пусто. Идет сразу код формы, а уже за ней остальной код шаблона.

    Пробовал делать так:
    PHP:
    <?php

    include $_SERVER['DOCUMENT_ROOT']."/exttraapi/vendor/exttraapi-autoloader.php";

    use 
    Exttraapi\SDK\API\ExttraapiClient;
    use 
    Exttraapi\SDK\API\ExttraapiRequest;

    if(
    $_POST){

    $startTime microtime(true);
    $fileDir dirname(__FILE__);
    require(
    $fileDir '/xf/library/XenForo/Autoloader.php');
    XenForo_Autoloader::getInstance()->setupAutoloader($fileDir '/xf/community/library');
    XenForo_Application::initialize($fileDir '/xf/community/library'$fileDir);
    XenForo_Application::set('page_start_time'$startTime);
    $db XenForo_Application::get('db');
    $things $db->fetchAll("*********");
    $result $things;

    $data $result;

    ...................................

    }
    ?>

    <form class="myform" method="POST">
    .................my form............
    </form>

    <?php if($_POST){ ?>
    <script>
    ....................................
    </script>

    <?php ?>
    Результат чуть лучше.
    Переменная передается. Шаблон на странице грузится нормально, но до тех пор, пока не будет нажата кнопка (передан POST). Как только это происходит, то шаблон сайта опять обрезается. Но форма из скрипта подгружется и работает нормально.

    Вот такая фот беда..
    Подскажите, пожалуйста, как сделать правильно?
    --- добавлено : Dec 1, 2015 1:34 PM ---
    Вопрос снят.
    PHP:
    XenForo_Application::initialize($fileDir '/xf/community/library'$fileDirtrue, array( 'resetOutputBuffering' => false ) );
     
    Последнее редактирование модератором: 09.12.2015
  2. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    У вас с кодировкой что? Не вижу вообще заголовка HTML. У XenForo все данные в UTF-8 в базе лежат.
     
  3. Alex Gludo

    Alex Gludo Bazinga!

    Регистрация:
    24.01.11
    Сообщения:
    484
    Симпатии:
    293
    Все в порядке.

    Заголовки в другом месте, куда файл с этим кодом инклюдится.

    Да, я знаю.
     

Поделиться этой страницей