2008-10-23 19 views
5

PHP 4.4 और PHP 5.2.3 में अपाचे 2.2.4 के तहत उबंटू पर पोस्ट किया जाता है।§OST कभी-कभी खाली क्यों होता है जब एक टेक्स्टरीए PHP

मैं मूडल 1.5.3 चला रहा हूं और हाल ही में एक कोर्स अपडेट करते समय समस्या आई है। $ _POST चर खाली है, लेकिन केवल तभी जब पाठ पर टेक्स्टरेरा में बहुत से टेक्स्ट दर्ज किए गए थे। अगर केवल एक छोटा पाठ दर्ज किया जाता है तो यह ठीक काम करता है।

मैं 200M के लिए 8M से post_max_size वृद्धि हुई है और 256M के लिए memory_limit वृद्धि हुई है, लेकिन इस नहीं मदद की है की है। मैंने LimitRequestFieldSize और LimitRequestLine को 16380 तक दोगुना कर दिया है और बिना किसी सुधार के LimitRequestBody को 0 पर सेट किया है।

मैं एक जवाब के लिए googled है, लेकिन एक को खोजने में असमर्थ किया गया है।

HTTP हेडर फ़ायरफ़ॉक्स पर सही डेटा के साथ 3816 की सामग्री के आकार से पता चलता है, इसलिए इसकी सिर्फ $ _POST के लिए हो रही नहीं।

कुछ सप्ताह पहले सिस्टम ठीक चल रहा था। एक्सिम 4 ईमेल सर्वर के साथ एक हेल्लो मुद्दे को सही करने के लिए/etc/hosts का एकमात्र परिवर्तन था।

मैं इस समस्या को एक विकास मशीन पर दोहरा सकता हूं जिसमें exim4 नहीं चल रहा है, इसलिए मुझे लगता है कि यह सिर्फ संयोग है।

आपकी सहायता के लिए धन्यवाद।

+0

विचित्र। क्या आपने सटीक दहलीज की पहचान की है? समस्या को पुन: उत्पन्न करने के इच्छुक लोगों के लिए विवरण उपयोगी हो सकता है। –

+0

आपने कहा कि टेक्स्ट की थोड़ी मात्रा में कोई समस्या नहीं है: क्या आप अनुमानित सीमा पा सकते हैं? – nickf

+0

यह स्पष्ट हो सकता है, लेकिन क्या आपने जांच की है कि फॉर्म वास्तव में POST का उपयोग करता है, और प्राप्त नहीं करता है? – troelskn

उत्तर

1

क्या यह पोस्ट से संबंधित आकार नहीं हो सकता है, लेकिन लाइन कितनी देर तक नई लाइन से पहले है। अगर वे मूडल वाई वाईएसआईवाईवायजी का उपयोग करते हैं तो एचटीएमएल को सिर्फ एक लाइन में डाल दिया जाएगा जिसमें ब्रेक नहीं होंगे। यदि आप एचटीएमएल में जाते हैं और हर 1000 अक्षरों के आसपास वापसी करते हैं तो यह काम करता है?

0

यह एक अपाचे या अपाचे/पीएचपी एकीकरण समस्या की तरह लगता है। यदि $ _POST खाली है तो यह संकेत देगा कि http सर्वर PHP को POST जानकारी नहीं दे रहा है। अगर मैं आप थे तो मैं अपाचे कॉन्फ़िगरेशन की जांच करूंगा।

+0

HTTP लाइव हेडर (फ़ायरफ़ॉक्स एक्सटेंशन) POST सामग्री को सही तरीके से दिखाता है। – Puzzled

0

यह स्पष्ट है, लेकिन क्या आपने /etc/init.d/apache2 पुनरारंभ किया है?

इसके अलावा, त्रुटि_लॉग फ़ाइल को कुछ जानकारी दिखानी चाहिए कि पोस्ट आकार सेट सीमा से अधिक है या नहीं। समस्या का निवारण करने के लिए अपनी verbosity बढ़ाने पर विचार करें

1

फ़ॉर्म का enctype क्या है? हो सकता है कि यह फ़ॉर्म के माध्यम से डेटा की मात्रा को सीमित कर दे।

file_get_contents('php://input'); 

सुनिश्चित करें कि उनके वास्तव में डेटा भेजने है बनाने के लिए:

तुम भी साथ आने वाले कच्चे $ _POST डेटा की जांच कर सकते हैं। इन सुझावों को मिला here

+0

यह भी खाली है – Puzzled

2

मुझे वास्तव में उपयोगी उत्तर देने के लिए पर्याप्त जानकारी नहीं है, इसलिए निम्नलिखित एक अच्छी तरह से शिक्षित अनुमान है (कम से कम मुझे उम्मीद है)।

सबसे पहले, आपको पूरे अनुरोध को या तो access_log द्वारा या उदाहरण के लिए firebug के माध्यम से डीबग करना चाहिए। (वैसे भी फायरबग रखना अच्छा है।) मेरे लिए आपकी समस्या लगता है जैसे रीडायरेक्ट के बीच होता है।मैं आपको एक उदाहरण देता:

मान लें कि यह आपके संरचना होती है:

/form.php 
/directory/index.php 

यह आपके रूप है:

<form action="/directory" method="post"> 
... 
</form> 

इस मामले में समस्या है, कि भले ही /directory एक मान्य URL है, अपाचे आपको /directory/ पर एक और बार रीडायरेक्ट करेगा, इस प्रकार आप अपना पेलोड खो रहे हैं ($_POST में क्या होना चाहिए)।

संबंधित मुद्दे