Update:
Çaresizlik bir uyum içinde, ben bir kabuk aşağıdaki etmedi:
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
... Ve HALA hiçbir $_POST
değişkenleri bu çıkışına kadar gösteriyor:
<?php var_dump($_POST); ?>
Ben php-cgi
ikili arayüzü ile küçük bir web sunucusu oluşturmak için çalışıyorum. Ancak, işler çok iyi gitmiyor. php-cgi
ikili doğru GET istekleri işler. Bu POST isteklerine gelince, $_POST
dizisi şeyler POSTed alıyorsanız bile, boş.
Ben php-cgi
ikili beslenir HTTP başlıklarını kontrol ettik ve onlar gerçekten POST veri ve Content-type: application/x-www-form-urlencoded
başlığını dahil edebilirim.
Ne isteğine dahil POST veri var ki görmesini php-cgi
ikilisini tutmak olabilir?
Ben ilerleme yapıyorum, ben bazı şeyler kadar kazdık ettik PHP source code:
-
468: static int sapi_cgi_read_post(char *buffer, uint count_bytes TSRMLS_DC)
(Ben bu fonksiyon çağrıldığında hiçbir fikrim yok.)
Aşağıda cevabını okuduktan sonra, ben denedim:
<?php
var_dump($HTTP_RAW_POST_DATA);
?>
... Olan çıkış vermiştir:
NULL
... Hatta yabancı bir şey burada iş başında olduğunu belirten.
Ben yakın alıyorum ... Ben bu işlevi bulundu /main/php_content_types.c:
SAPI_API SAPI_POST_READER_FUNC (php_default_post_reader)
... Ve POST isteklerini işler kod gibi görünüyor.