We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 26709
    • 4 Posts
    Подскажите,как передать в снипет значения переменных, отосланных из формы через метод post ?
    Ситуация такая. А вставляю в страницу код из внешнего файла, который обрабатывает данные из формы

    Код снипета:
    global $QUERY_STRING;
    
    $url =$modx->config['site_url'];
    $file=$url."/assets/modules/board/add.php?".$QUERY_STRING;
    
    ob_start();//Start the buffer
    include ("$file"); //include
    $ob_contents = ob_get_contents();//get contents from the buffer
    ob_end_clean();//and kill/delete the buffer
    return $ob_contents;//return 


    Этим кодом запускается форма, потом этим же кодом она обрабатывается. В приведенном примере я пересылаю в снипет данные методом get - все работает. Но через post ничего не получается - поля пустые. Снипет я вызываю без кеширования. Как решить проблему?
    • Ну может быть массив $_POST использовать нужно?
        Разработка сайтов и программных модулей на MODX.
        Опыт работы на MODx с 2005 года. Высокое качество.
        Компания Baltic Design Colors: http://www.bdcolors.ru.
        • 26709
        • 4 Posts
        щас попробую, может что-то получится
          • 26709
          • 4 Posts
          Все равно не получается. Через get работает, а через ПОСТ не хочет. Приходят пустые поля
          • хм.. а в сниппете global $QUERY_STRING - это что?
            по идее если все правильно, то вместо
            $file=$url."/assets/modules/board/add.php?".$QUERY_STRING;
            надо писать
            $file=$url."/assets/modules/board/add.php?".$_POST["field"];, где field - название поля в форме..
              Разработка сайтов и программных модулей на MODX.
              Опыт работы на MODx с 2005 года. Высокое качество.
              Компания Baltic Design Colors: http://www.bdcolors.ru.
              • 26709
              • 4 Posts
              переменная $Query_string возвращает строку, которая идет после знака вопроса. Т.е. если запрос такой:

              index.php?id=1&tid=1, то в скрипте эта переменная возвратит  строку id=1&tid=1. Но это все касается лишь данных через метод ГЕТ. А через ПОСТ в строке браузера не нужно никаких переменных приписывать. Поэтому в снипете после инклуда файла однозначно ничего не должно быть. А данные полей должны передаваться как-то по-другому. Но как? Обычным образом все работает нормально, когда использую массив ПОСТ, но в снипете не работает
              • хм.. странно.
                Все равно не получается. Через get работает, а через ПОСТ не хочет. Приходят пустые поля
                Пробывал посмотреть, что приходит из формы?
                Так например:
                foreach($_POST as $key=>$value) {
                echo("Key: ".$key." Value:".$value."
                \n");
                }
                вообще появляется ли массив $_POST?
                  Разработка сайтов и программных модулей на MODX.
                  Опыт работы на MODx с 2005 года. Высокое качество.
                  Компания Baltic Design Colors: http://www.bdcolors.ru.
                  • 26709
                  • 4 Posts
                  Проверил. Ситуация такая: если вставить эту проверку в код снипета - все нормально отображается, поля определены. Но как только вставляю эту проверку в сам файл, который инклужу, выдает пустые поля
                  • ну пока больше у меня нет идей smiley может завтра появятся.. а пока спать smiley
                    ps: хотя есть мысль, что эта конструкция
                    ob_start();//Start the buffer
                    include ("$file"); //include
                    $ob_contents = ob_get_contents();//get contents from the buffer
                    ob_end_clean();//and kill/delete the buffer
                    return $ob_contents;//return
                    не дает воспользоваться массивом $_POST. Но вполне возможно, что ошибаюсь.
                      Разработка сайтов и программных модулей на MODX.
                      Опыт работы на MODx с 2005 года. Высокое качество.
                      Компания Baltic Design Colors: http://www.bdcolors.ru.