अद्यतन:PHP-CGI में POST डेटा कैसे पास करें?
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 var_dump($_POST); ?>
मैं एक छोटे से वेबसर्वर किके साथ इंटरफेस बनाने के लिए कोशिश कर रहा हूँबाइनरी। हालांकि, चीजें इतनी अच्छी तरह से नहीं जा रही हैं। php-cgi
बाइनरी सही तरीके से GET अनुरोधों को संभालती है। जब POST अनुरोधों की बात आती है, तो $_POST
सरणी खाली होती है, भले ही चीजें पोस्ट हो रही हों।
मैंने HTTP शीर्षलेखों को php-cgi
बाइनरी में खिलाया गया है और वास्तव में पोस्ट डेटा और Content-type: application/x-www-form-urlencoded
हेडर शामिल किया है।
php-cgi
बाइनरी को यह देखने से क्या हो सकता है कि अनुरोध में POST डेटा शामिल है?
-
468: static int sapi_cgi_read_post(char *buffer, uint count_bytes TSRMLS_DC)
मैं प्रगति कर रहा हूँ, मैं PHP source code से कुछ सामान ऊपर खोदा गया हैनीचे इस सवाल का जवाब पढ़ने के बाद (। मुझे नहीं पता कि जहां इस समारोह से शुरू हो जाती है है)
, मैंने कोशिश की:
<?php
var_dump($HTTP_RAW_POST_DATA);
?>
... जो उत्पादन झुकेंगे:
NULL
... यह इंगित करता है कि यहां तक कि अजनबी कुछ भी काम पर है।
मैं करीब हो रही है ... मैं /main/php_content_types.c में इस समारोह पाया:
SAPI_API SAPI_POST_READER_FUNC (php_default_post_reader)
... और यह कोड हो रहा है कि POST अनुरोधों को संसाधित करता है।
PHP स्रोत के माध्यम से चुनने का समय: पी –
मेरे पास कोई जवाब नहीं है, लेकिन पोस्ट डेटा stdin के माध्यम से आना चाहिए। –
क्या आपका वेब सर्वर CGI 1.1 विनिर्देश को सही तरीके से कार्यान्वित करता है? – joschi