Обновление:
В приступе отчаяния я сделал следующее в оболочке:
REDIRECT_STATUS=true
SCRIPT_FILENAME=/var/www/...
REQUEST_METHOD=POST
GATEWAY_INTERFACE=CGI/1.1
export REDIRECT_STATUS
export SCRIPT_FILENAME
export REQUEST_METHOD
export GATEWAY_INTERFACE
echo "test=1" | php-cgi
... и ВСЕ ЕЩЕ нет переменных $ _ POST
отображаются в выходных данных из этого:
Я пытаюсь создать небольшой веб-сервер, который взаимодействует с двоичным файлом php-cgi
. Однако дела идут не так хорошо. Двоичный файл php-cgi
правильно обрабатывает запросы GET. Когда дело доходит до запросов POST, массив $ _ POST
пуст, даже когда что-то отправляется на POST.
Я проверил заголовки HTTP, загружаемые в php-cgi
двоичный файл, и они действительно включают данные POST и заголовок Content-type: application / x-www-form-urlencoded
.
Что может содержать двоичный файл php-cgi
увидев это там s POST-данные, включенные в запрос?
У меня прогресс, я откопал кое-что из исходного кода PHP :
468: static int sapi_cgi_read_post (char * buffer, uint count_bytes TSRMLS_DC)
(я понятия не имею, откуда вызывается эта функция.)
Прочитав ответ ниже, я попробовал:
. .. что дало результат:
NULL
... что указывает на то, что здесь работает что-то еще более странное.
Я подхожу ближе ... Я нашел эту функцию в /main/php_content_types.c :
SAPI_API SAPI_POST_READER_FUNC (php_default_post_reader)
... и, похоже, это код, который обрабатывает запросы POST.