Показано с 1 по 2 из 2

Тема: Пустой массив POST.

  1. #1
    Junior Member
    Регистрация
    13.11.2018
    Сообщений
    1

    По умолчанию Пустой массив POST.

    Здравствуйте.
    Может кто-то сталкивался ранее.
    При написании модуля зачисления платежа, столкнулся с проблемой обработки $_POST запросов, а именно: при передаче на файл http://xx.xx.xx.xx/mancgi/testpullresult.php (который лежит в папке cgi) массива данных через _POST запрос, получаю пустой массив.

    Ранее используя этот совет, удалось прочитать массив посредством чтения данных через $param = CgiInput(true) , но интересует возможность получения информации без использования CgiInput.

    Так же пробовал использовать file_get_contents('php://stdin'), но при вызове функции зависает и отваливается через минуту по таймауту. Вызов file_get_contents('php://input') так же пуст. Увеличение параметра MaxPostSize в конфиге billmgr.conf так же не дало результатов.


    Установлена чистая панель BillManager 5.173.4-2018.10.22_18:03
    Подскажите, пожалуйста, что могу делать не так?


    Спасибо!
    Последний раз редактировалось mastafaa; 13.11.2018 в 05:52.

  2. #2
    Support team Аватар для usaafko
    Регистрация
    06.10.2013
    Сообщений
    2,384

    По умолчанию

    Проблема в методе передачи данных внутрь php-cgi через CGI интерфейс. Попробуйте так
    Код:
    $input = "";
    if ($_SERVER["REQUEST_METHOD"] == 'POST'){
    $size = $_SERVER["CONTENT_LENGTH"];
    if ($size == 0) {
    $size =	$_SERVER["HTTP_CONTENT_LENGTH"];
    }
    if (!feof(STDIN)) {
    $input = fread(STDIN,$size);
    }
    
    } elseif ($_SERVER["REQUEST_METHOD"] == 'GET'){
    $input = $_SERVER["QUERY_STRING"];
    }
    $param = array();
    parse_str($input, $param);
    
    echo "Content-Type: text\n\n";
    print_r ($param);

Ваши права

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