2013-10-25 8 views
9

मैं एक एप्लिकेशन चला रहा हूं जो त्रुटि_ रिपोर्टिंग कॉल के साथ झुका हुआ है, लेकिन मैं PHP 5.5 चला रहा हूं जिसमें बहुत कम चेतावनी दी गई है। मैंने अपनी php.ini फ़ाइल को इस तरह सही तरीके से कॉन्फ़िगर किया है।रनटाइम पर error_reporting() को अनदेखा करने के लिए मैं PHP को कैसे कॉन्फ़िगर कर सकता हूं?

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT 

लेकिन सभी त्रुटि_ रिपोर्टिंग() कॉल इसे ओवरराइड करते हैं। क्या मैं किसी भी तरह से रनटाइम कॉल को अनदेखा करने के लिए कॉन्फ़िगर करता हूं error_reporting()?

सभी त्रुटि_रपोर्टिंग() कॉल बदलना एक वास्तविक परेशानी है, खासकर जब एप्लिकेशन को नियमित रूप से अपडेट करने की आवश्यकता होगी और मैं एक पोस्ट इंस्टॉल हैक स्क्रिप्ट चलाने से बचना चाहता हूं।

मैं उस ऐप्लिकेशन के नाम का उल्लेख नहीं करना चाहते, यह VBulletin 5.

+0

" मैं ऐप के नाम का उल्लेख नहीं करना चाहता, यह वीबुलेटिन 5 है। " हां। यदि किसी एप्लिकेशन में 'error_reporting() 'कॉल है, तो यह खराब PHP डेवलपर्स के लिए एक संकेत है। 'error_reporting' को सर्वर कॉन्फ़िगरेशन (यानी' php.ini') के माध्यम से सेट किया जाना चाहिए। – feeela

+0

'str_replace ('error_reporting', '', $ code);' ;-) –

+0

यह अच्छा होगा अगर आप किसी फ़ंक्शन को फिर से परिभाषित कर सकें। जैसे आप जावास्क्रिप्ट में कर सकते हैं। ओह अच्छा। –

उत्तर

8

है नहीं है एक आरं स्थापित disable_functions, जो आप error_reporting() समारोह को निष्क्रिय करने के इस्तेमाल कर सकते हैं। इस तरह से एप्लिकेशन इस फ़ंक्शन के माध्यम से त्रुटि रिपोर्टिंग स्तर सेट नहीं कर सकता है।

disable_functions = error_reporting 

केवल आंतरिक कार्यों के इस निर्देश का उपयोग कर निष्क्रिय किया जा सकता। उपयोगकर्ता परिभाषित कार्य अप्रभावित हैं। यह निर्देश php.ini में सेट होना चाहिए उदाहरण के लिए, आप इसे httpd.conf में सेट नहीं कर सकते हैं।

देखें: http://www.php.net/manual/en/ini.core.php#ini.disable-functions

+0

सही उत्तर के लिए एक टॉस। –

+6

* चरम * बुराई के साथ बुराई का मुकाबला। मुझें यह पसंद है! +1 :) –

4

आप वेब सर्वर विन्यास आप php_admin_value उपयोग कर सकते हैं एक मूल्य है कि ओवरराइड नहीं किया जा सकता करने के लिए error_reporting स्थापित करने के लिए पर नियंत्रण है।

the documentation के अनुसार यह एक .htaccess फ़ाइल में उपयोग नहीं किया जा सकता है, इसलिए आपको इसे पूरे सर्वर पर उपयोग करना होगा ... शायद थोड़ा अधिक।

त्रुटि = रिपोर्टिंग अक्षम करने के लिए disable_functions का उपयोग करने की एक और संभावना होगी। नकारात्मक पक्ष यह होगा कि आप एक हर बार यह प्रयोग किया जाता है चेतावनी मिल जाएगा, लेकिन आप कुछ मिल सकता है:

आपको लगता है कि केवल निर्दिष्ट स्क्रिप्ट को प्रभावित करता है अपने php.ini के लिए एक अनुभाग जोड़ सकते हैं:

[PATH=<path>] 
error_reporting = 0 
disable_functions = "error_reporting" 
+0

हाहा। हाँ चेतावनी, लेकिन यह वह चीज है जिसकी मैं सोच रहा था। टा –

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

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