2012-02-22 18 views
33

मैं अपनी स्थानीय मशीन में WAMP का उपयोग कर रहा हूं, जब 2000 इनपुट फ़ील्ड के साथ एक FORM (method = "POST") सबमिट किया गया है, तो मैं केवल 1001 _POST चर पढ़ने में सक्षम हूं। i.e Netbeans डीबगर के साथ मैं स्पष्ट रूप से देख सकता हूं कि फॉर्म में 1001 से अधिक इनपुट फ़ील्ड होने पर _POST आकार हमेशा 1001 होता है।PHP में अधिकतम POST चर कैसे बढ़ाएं?

मैंने एन इनपुट फ़ील्ड और परीक्षण के साथ फॉर्म उत्पन्न करने के लिए इस http://ideone.com/GAw14 जावा कोड का उपयोग किया।

वही अन्य मशीन (डब्ल्यूएएमपी) में ठीक काम कर रहा है, जहां मैं सभी पोस्ट चर देख सकता हूं।

कृपया मेरी समस्या का समाधान करने में मेरी सहायता करें।

+1

दूसरी मशीन से php.ini क्यों न लें और इसे अपनी वर्तमान मशीन से तुलना करें और देखें कि 'post_max_size' आदि चर के लिए क्या रखा जाना चाहिए? –

+0

क्या आप सुहोसिन (कठोर PHP) का उपयोग कर रहे हैं? – jprofitt

+0

मुझे नहीं पता कि यह PHP या वेब ब्राउज़र सीमित है ... –

उत्तर

76

PHP 5.3.9 ने max_input_vars कॉन्फ़िगरेशन विकल्प पेश किया, जो 1000 के मान के लिए डिफ़ॉल्ट है। PHP मैनुअल के Runtime Configuration अनुभाग देखें। डिफ़ॉल्ट मान और परिवर्तन लॉग पृष्ठ के शीर्ष पर हैं।

मूल्य को सर्वर की php.ini अद्यतन करके बदला जा सकता है, एक .htaccess फ़ाइल, या adding a line to httpd.conf जोड़कर।

+0

बिल्कुल सही !!! धन्यवाद। आप सही हैं :) –

+1

क्रेडिट एक सहकर्मी को जाता है जिसकी कल कल यह समस्या थी और फिर अपने निष्कर्षों को साझा करने के लिए काफी अच्छा था टीम के साथ :) – lightster

+1

भविष्य में खोज रहे किसी के लिए, मैंने पाया कि 2013-03-15 के रूप में एक डिफ़ॉल्ट सीपीनल सर्वर ने 512 तक इनपुट चर की संख्या सीमित कर दी है। हमारी कुछ स्क्रिप्ट्स इसके मुकाबले काफी अधिक हो गईं और अधिकतम_इनपुट_वर्स को php में जोड़ दिया गया .ini ने समस्या तय की। –

-1

मुझे संदेह है कि समस्या आपके POST अनुरोध के साथ आने वाले डेटा की मात्रा के साथ है। ऐसी कोई सेटिंग नहीं है जो सेट किए जा सकने वाले $ _POST वर्र्स की संख्या को सीमित कर दे। हालांकि POST डेटा के लिए स्मृति सीमा है जो डिफ़ॉल्ट रूप से 8 एमबी है।

अपनी php.ini फ़ाइल में post_max_size के मान को संशोधित करने का प्रयास करें और इसे उच्च मान पर सेट करें। परिवर्तन के बाद अपाचे को पुनरारंभ करना न भूलें।

+0

मैंने post_max_size को 81 एम में भी 0 संशोधित किया और WAMP को फिर से शुरू किया समस्या अभी भी मौजूद है। –

17

यदि आप कठोर PHP के साथ Suhosin का उपयोग कर रहे हैं, तो आप अधिकतम वैरिएबल सीमा को मार सकते हैं जो इसे लागू करता है। अपने php.ini में, आप बस आप जो कुछ भी चाहते हैं कि 1000 बदलते

[suhosin] 
suhosin.request.max_vars = 1000 
suhosin.post.max_vars = 1000 

जोड़ सकते हैं और अपने वेब सर्वर को पुनः आरंभ कर सकते हैं।

मैं ड्रूपल अनुमति पृष्ठ पर इस पर भाग गया जब बड़ी संख्या में भूमिकाओं के साथ बहुत सारे मॉड्यूल स्थापित किए गए, जिसके परिणामस्वरूप चेकबॉक्स का एक टन हुआ। यह केवल अनदेखा होने के बाद कुछ भी पहले से ही उनमें से एक निश्चित संख्या को बचाएगा।

ऐसा लगता है कि यह शायद आपकी समस्या नहीं है, लेकिन चूंकि यह भविष्य में किसी चीज की खोज करते समय भविष्य में कोई भी ठोकर खा सकता है, मैं आगे बढ़ जाऊंगा और इसे फेंक दूंगा क्योंकि मुझे समझने में उम्र लग गई है जब मैं फंस गया था।

+0

धन्यवाद। मैं सुहोसिन का उपयोग नहीं कर रहा हूँ। –

+1

php5.4 या php5.5 के लिए कोई सुहोसिन नहीं है :( – ZiTAL

0

मैंने इस समस्या को हल किया। Php.ini विन्यास फ़ाइल खोलें और इन पंक्तियों के

[suhosin]

suhosin.post.max_vars = 20000

suhosin.request.max_vars = 20000

3

मैं हल मेरी $ _POST अधिकतम जोड़ने आदानों php.ini के लिए निम्न जोड़कर -problem:

max_input_vars = 5000 
suhosin.request.max_vars = 5000 
suhosin.post.max_vars = 5000 

यह भी ध्यान रखें suhosin.request.max_vars।

+0

'max_input_vars' मेरे मामले में एकदम सही फिट था :) – Vineet

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