2012-04-02 13 views
93

में सख्त मानकों को अक्षम करना वर्तमान में मैं php 5.4 पर एक साइट चला रहा हूं, इससे पहले कि मैं अपनी साइट 5.3.8 पर चला रहा था। दुर्भाग्यवश, php 5.4 E_ALL और E_STRICT को जोड़ती है, जिसका अर्थ है कि error_reporting के लिए मेरी पिछली सेटिंग अब काम नहीं करती है। मेरा पिछला मान E_ALL & ~E_NOTICE & ~E_STRICT था क्या मुझे एक समय में मूल्यों को सक्षम करना चाहिए?PHP 5.4

मेरे पास बहुत अधिक त्रुटियां हैं और फ़ाइलों को ठीक करने के लिए मेरे पास बहुत अधिक कोड है।

+11

सलाह ... कोड को ठीक करें या कीड़े – Baba

+7

एस/दुर्भाग्य/सौभाग्य – NikiC

+95

सलाह के लिए धन्यवाद डिबग करने के लिए बेहतर और अधिक मुश्किल मिल जाएगा, फिर भी मैं करने के लिए पूरे jfusion phpBB3 प्लगइन फिर से लिखें ज्ञान की आवश्यकता की कमी है। हालांकि संवेदना के लिए धन्यवाद। – icomrade

उत्तर

136

टिप्पणीकर्ताओं ने कहा है कि सर्वोत्तम विकल्प त्रुटियों को ठीक करना है, लेकिन सीमित समय या ज्ञान के साथ, यह हमेशा संभव नहीं होता है। अपने php.ini परिवर्तन में

error_reporting = E_ALL 

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT 

करने के लिए आप php.ini के लिए पहुँच नहीं है, तो आप संभवतः अपनी .htacces फ़ाइल में इस डाल सकते हैं:

php_value error_reporting 30711 

यह E_ALL मान (32767) है और E_STRICT (2048) और E_NOTICE (8) मानों को हटा रहा है।

:

आप .htaccess फ़ाइल तक पहुँचने नहीं है, तो या यह सक्षम नहीं कर रहा है, तो आप शायद किसी भी स्क्रिप्ट की पीएचपी खंड एक ब्राउज़र कॉल से लोड हो जाता है कि के शीर्ष पर डाल करने की आवश्यकता होगी

error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE); 

उनमें से एक आपको सॉफ़्टवेयर का उपयोग करने में सक्षम होना चाहिए। नोटिस और सख्त सामान समस्याएं या संभावित समस्याओं के संकेतक हैं हालांकि आप पाएंगे कि कुछ कोड PHP 5.4 में सही तरीके से काम नहीं कर रहा है।

उम्मीद है कि इससे मदद मिलती है।

+0

मदद के लिए धन्यवाद, जो कि अधिकांश सख्त त्रुटियों के लिए काम करना प्रतीत होता है। – icomrade

+10

मैं php 5.4.5 का उपयोग कर रहा हूं और मैंने उपर्युक्त सभी को आजमाया लेकिन मैं सख्त अधिसूचनाओं को अक्षम नहीं कर सका :(कोई अन्य विचार? –

+2

आप त्रुटि_ रिपोर्टिंग() में अन्य भागों के साथ ~ E_DEPRECATED डालने का प्रयास कर सकते हैं। क्या आप देख रहे हैं? –

1

यह PHP कोड

ini_set('error_reporting', 30711); 


में और .htaccess फाइल

php_value error_reporting 30711 
+0

केवल एक चीज जो php.ini तक पहुंच के बिना मेरे लिए काम करती है, उपर्युक्त में से कोई भी स्वयं ही काम नहीं करेगा, केवल 500 त्रुटि लौटाएगा। दोनों बच्चे एक साथ !!! –

1

में आप की आवश्यकता होगी तो

कहीं, मेरे लिए काम किया जब मैं एक ही समय में दो स्थानों पर error_reporting सेट E_DEPRACATED को अक्षम करने के लिए, उपयोग करें:

php_value error_reporting 22527 

मेरे मामले में सीएमएस मेड सरल शिकायत कर रहा था "त्रुटि_ रिपोर्टिंग में E_STRICT सक्षम है" साथ ही "E_DEPRECATED सक्षम है"। उस लाइन को .htaccess में जोड़कर दोनों गलत कॉन्फ़िगरेशन हल किए गए।

2

.htaccess php_value केवल तभी काम कर रहा है जब आप वेब सर्वर अपाचे के मॉड्यूल के रूप में PHP सर्वर API का उपयोग करते हैं। उपयोग IfModule वाक्य रचना:

# PHP 5, Apache 1 and 2. 
<IfModule mod_php5.c> 
    php_value error_reporting 30711 
</IfModule> 

पीएचपी सर्वर API सीजीआई/FastCGI

ini_set('error_reporting', 30711); 

या

error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE); 
अपने PHP कोड में

, या PHP विन्यास फाइल का उपयोग आप का उपयोग करते हैं।user.ini | php.ini संशोधन:

error_reporting = E_ALL & ~E_STRICT & ~E_NOTICE 

आपके वर्चुअल होस्ट, सर्वर स्तर पर।

0

हेड अप, आपको LAMP, अपाचे या जो भी आप इसका उपयोग करने के लिए उपयोग कर रहे हैं उसे पुनरारंभ करने की आवश्यकता हो सकती है। इस पर थोड़ी देर के लिए हमारे दिमाग को रैक किया गया, तब तक कोई प्रभाव नहीं पड़ा जब तक कि सेवाओं को पुनरारंभ नहीं किया जाता था, संभवतः क्योंकि वेबसाइट कैशिंग थी।

+0

नहीं। ऐसा इसलिए है क्योंकि अपाचे को PHP के लिए सेटिंग्स को फिर से लोड करने की आवश्यकता है।यह AFAIK केवल तभी किया जाता है जब सेवा शुरू होती है। – svin83

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