2012-03-12 17 views
18

मुझे एक नया PHP चेतावनी मिल रही है जब मेरे पृष्ठ पर किसी पृष्ठ से मेरे सर्वर पर एक POST डेटा प्राप्त हो रहा है। चेतावनी निम्नानुसार है:PHP चेतावनी: अज्ञात: इनपुट चर 1000 से अधिक

PHP चेतावनी: अज्ञात: इनपुट चर 1000 से अधिक हो गया है। सीमा को बढ़ाने के लिए php.ini में max_input_vars को बदलें। लाइन 0, संदर्भित पर अज्ञात में: https://mywebsite.com/index.php

बात यह है कि मेरी फ़ॉर्म 1000 इनपुट चर के पास नहीं होता है, तो मैं ऐसा क्यों दिखाई दे रहा है के रूप में विस्मित कर रहा हूँ। एक साइड नोट के रूप में, मुझे हाल ही में यह समस्या नहीं मिली है और मुझे संदेह है कि जब मैं yum update चला गया तो कुछ बदल गया/स्थापित किया गया था जो इसका कारण बन रहा है। कोई सलाह या उत्तर की सराहना की जाती है।

संपादित करें 1: तो मैंने var_dump($_REQUEST) किया और ~ 1000 एकल वर्ण तार प्राप्त किए। सरणी में पहले जोड़े आइटम वे हैं जो उन्हें होना चाहिए, लेकिन फिर सामानों का एक गुच्छा जिसे मुझे जमा करने की आवश्यकता नहीं है, को सिंगल कैरेक्टर स्ट्रिंग में तोड़ दिया गया है। विचार स्वागत है।

array(1001) { 
    ["action"]=> string(10) "step1_show" 
    ["submit"]=> string(6) "Step 1" 
    [0]=> string(1) "a" 
    [1]=> string(1) "c" 
    [2]=> string(1) "t" 
    [3]=> string(1) "i" 
    [4]=> string(1) "o" 
    [5]=> string(1) "n" 
    [6]=> string(1) "=" 
    [7]=> string(1) "l" 
    [8]=> string(1) "o" 
    [9]=> string(1) "g" 
    [10]=> string(1) "o" 
    [11]=> string(1) "u" 
    [12]=> string(1) "t" 
    [13]=> string(1) "&" 
    [14]=> string(1) "p" 
    [15]=> string(1) "r" 
    [16]=> string(1) "o" 
    [17]=> string(1) "p" 
    [18]=> string(1) "e" 
    [19]=> string(1) "r" 
    [20]=> string(1) "t" 
    [21]=> string(1) "y" 
    [22]=> string(1) "=" 
    [23]=> string(1) "3" 
    [24]=> string(1) "7" 
    [25]=> .....  

उत्तर: यह मेरी प्रस्तुत हैंडलर के साथ एक समस्या किया जा रहा समाप्त हो गया। आपके निवेश - सहयोग के लिए धन्यवाद।

+2

हमें आपकी मदद करने में सक्षम होने के लिए अपना फॉर्म देखना होगा। – DanRedux

+4

'var_dump ($ _ अनुरोध)' आज़माएं। – Travesty3

+1

यह सुविधा PHP 5.3.something में पेश की गई थी।क्या आप अपना फॉर्म दिखा सकते हैं? –

उत्तर

41

यह PHP में एक नई सेटिंग/मान है (PHP स्क्रिप्ट्स पर हमलों को रोकने के लिए सुरक्षा अद्यतन से संबंधित), तो आपको अपडेट के बाद यह मिलता है (PHP 5.3.9 सेट/उपलब्ध नहीं होने से पहले, suhosin उपयोगकर्ताओं की एक समान चीज़ है वर्षों से)।

इनपुट मान विभिन्न प्रकार के हैं और सरणी सदस्यों की भी गणना है। इसलिए फॉर्म फ़ील्ड गिनने के लिए पर्याप्त नहीं है बल्कि इनपुट ($_GET, $_POST, $_SERVER, $_ENV, , $_FILES, $_COOKIE ...) से संबंधित अन्य स्थानों पर भी नज़र डालें।

max_input_vars देखें:

कितने input variables स्वीकार किया जा सकता। इस निर्देश का उपयोग हैश टकराव का उपयोग करने वाले सेवा हमलों से इनकार करने की संभावना को कम करता है। यदि इस निर्देश द्वारा निर्दिष्ट से अधिक इनपुट चर हैं, तो E_WARNING जारी किया गया है, और अनुरोध से आगे इनपुट चर को छोटा कर दिया गया है। यह सीमा केवल बहु-आयामी इनपुट सरणी के प्रत्येक घोंसले स्तर पर लागू होती है।

+0

समझ गया। ऐसा लगता है कि मुद्दा यह है कि मैं उन सर्वर पर आइटम पोस्ट कर रहा हूं जो विशेष रूप से प्रासंगिक नहीं हैं। फायरबग में पोस्ट अनुरोध @Darhazer को देखकर कुछ मुद्दों को दिखाता है। धन्यवाद – Jon

+0

PHP अपग्रेड के माध्यम से गुणवत्ता नियंत्रण - मजाकिया;) खुशी है कि आप अपराधी पाए गए हैं। – hakre

-5

मैं जब .ajaxSubmit() का उपयोग कर इस एक ही समस्या थी

जब प्रपत्र serializing, .serialize()

आप here

से पुस्तकालय प्राप्त कर सकते हैं के बजाय .serializeObject (का उपयोग करें)
+0

गलत भाषा? – 472084

-1

मैंने अपने वेब होस्ट व्यवस्थापक पैनल (लिटिलोक) के माध्यम से max_input_vars समस्या को ठीक किया है, मैंने max_input_vars = 0 को max_input_vars = 6000 में बदल दिया है। मेरे सर्वर पर PHP की कई स्थापनाएं हैं जो सर्वर कंपनी कॉन्फ़िगर की गई हैं। मेरा मानना ​​है कि max_input_vars = 0 ईमेल स्पैमर को स्पैम भेजने के लिए सर्वर का उपयोग करने से रोकने के लिए है। Php.ini फ़ाइल कहीं भी रहती है, यह सुनिश्चित नहीं है कि, लेकिन मैं इसे अपने साइट व्यवस्थापक पर cPanel के माध्यम से संशोधित करने में सक्षम था।

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