PHP में त्रुटियों का उत्पादन
कोई फर्क नहीं पड़ता कि कितना सावधान और चौकसवेब प्रोग्रामर, अपने काम के दौरान, त्रुटियों और अशुद्धियों संभव हैं। नतीजतन, इससे साइट या सेवा की विफलता हो सकती है। परियोजना के विकास के दौरान डीबगिंग के लिए, PHP में त्रुटि आउटपुट शामिल करना संभव है।
यह कैसे काम करता है?
PHP निश्चित रूप से इस या उस कोड के प्रति प्रतिक्रिया करता हैस्क्रिप्ट। कुछ मामलों में - आवश्यक कार्रवाई कर रहा है, दूसरों में - एक त्रुटि प्रदर्शित करता है यह तंत्र डेवलपर को कोड अनुभाग लागू करने के समय कमियों को दूर करने में मदद करता है।
हालांकि, PHP में त्रुटियों का उत्पादन हमेशा आवश्यक नहीं होता है परियोजना के विकास के पूरा होने के बाद, यह फ़ंक्शन हेकिंग या अनधिकृत पहुंच से बचने के लिए अक्षम है।
समायोजन
पूरे PHP इंटरप्रेटर कॉन्फ़िगरेशन के लिए,php.ini फ़ाइल इसमें एक त्रुटि_रेपोर्टिंग निर्देश है, जो अभी PHP में त्रुटियों के आउटपुट को परिभाषित करता है। हालांकि, हालांकि इसमें अपवाद हैंडलिंग भी शामिल है, display_errors ब्राउज़र विंडो में उन्हें प्रदर्शित करने के लिए जिम्मेदार है। यदि यह अक्षम है, तो सिस्टम त्रुटि के स्थान पर रिक्त पृष्ठ प्रदर्शित करता है।
अपवादों का वर्गीकरण
PHP में त्रुटियों का उत्पादन सशर्त कई श्रेणियों में विभाजित किया जा सकता है:
त्रुटियों, जिसके परिणामस्वरूप स्क्रिप्ट काम करना बंद कर देगा तथाकथित, घातक इसमें शामिल हैं E_ERROR, E_COMPILE_ERROR;
त्रुटियों को समाप्त किया जा सकता है त्रुटि_रेपोर्टिंग निर्देश के लिए उनके मूल्य ये हो सकते हैं: E_WARNING, E_NOTICE और अन्य
यह प्रत्येक प्रकार में अधिक विस्तार से विचार करने और इसके कार्यात्मक का वर्णन करने के लिए उपयुक्त है।
E_ERROR। आमतौर पर इस प्रकार से ऐसी त्रुटियों को संदर्भित किया जाता है जिन्हें जल्दी से समाप्त नहीं किया जा सकता है या स्क्रिप्ट के निष्पादन को जारी रख सकते हैं। इसमें स्मृति आवंटन के साथ समस्याएं शामिल हो सकती हैं;
E_WARNING। कोड काम करना जारी रखेगा, लेकिन एक चेतावनी दिखाई जाएगी कि कुछ त्रुटि है, जिसमें कोड संदेश में दर्शाया गया है। महत्वपूर्ण नहीं;
E_NOTICE। जो सूचनाएं दिखाती हैं: कुछ ऐसा हुआ है जिससे त्रुटि हो सकती है कोड निष्पादन के लिए भी महत्वपूर्ण नहीं;
E_USER_ERROR। उपयोगकर्ता द्वारा उत्पन्न त्रुटियां;
E_ALL। इसमें सभी प्रकार की त्रुटियां शामिल हैं आमतौर पर, यह विकल्प डिफ़ॉल्ट रूप से सक्षम होता है जब इंटरप्रिटर को इंस्टॉल किया जाता है।
PHP में त्रुटि आउटपुट कैसे सक्षम करें
PHP में त्रुटि तंत्र का उपयोग करने की विधिहोस्टिंग पर या स्थानीय कंप्यूटर पर कोड को लागू किया जा सकता है, इसके आधार पर भिन्न हो सकते हैं दूसरे मामले में, डेवलपर अपने सर्वर को कॉन्फ़िगर कर सकता है और प्रदर्शन के रूप में प्रदर्शित करता है, अर्थात्, php.ini फ़ाइल में कॉन्फ़िगरेशन को परिवर्तित करें। यह दो निर्देशों को देने के लिए पर्याप्त है - display_errors और error_reporting निम्न रूप में:
display_errors चालू
त्रुटि_ रिपोर्टिंग E_ALL
ये आदेश सीधे ब्राउज़र विंडो में सभी त्रुटि संदेशों को दिखाएंगे।
यदि विकास वर्चुअल पर किया जाता हैहोस्टिंग, फिर सुरक्षा कारणों से अक्सर त्रुटि प्रदर्शन फ़ंक्शन अक्षम कर दिया जाता है। इसलिए, इसे सक्रिय करने के लिए, आपको अपाचे htaccess सर्वर कॉन्फ़िगरेशन फ़ाइल का उपयोग करने की आवश्यकता होगी। आमतौर पर यह साइट की जड़ में है। किसी भी पाठ संपादक का उपयोग करके आपको इसमें कुछ पंक्तियां जोड़ने की आवश्यकता है:
php_flag display_errors पर
php_value त्रुटि रिपोर्टिंग -1
आप ini_set () फ़ंक्शन का उपयोग कर सीधे कोड से त्रुटियों को आउटपुट भी कर सकते हैं। हालांकि, यह ध्यान में रखना चाहिए कि साइट के विकास के बाद, इसका आवेदन सुरक्षा समस्याओं का कारण बन सकता है।
फ़ाइल में लिखें
PHP आपको हार्ड डिस्क पर किसी विशिष्ट स्थान पर हुई सभी त्रुटियों को सहेजने की अनुमति देता है। फ़ाइल में PHP त्रुटियों के आउटपुट को शामिल करने के लिए, आप तीन विधियों का उपयोग कर सकते हैं:
php.ini फ़ाइल संपादित करें। यहां आपको दो लाइनों को परिभाषित करने की आवश्यकता है। पहला वाला log_errors = चालू है, जो वास्तव में आउटपुट क्षमता को सक्रिय करता है। दूसरा error_log = पथ / वांछित / फ़ाइल में है।
Htaccess संपादित करें। आप इसमें दो लाइन भी जोड़ सकते हैं। php_value log_errors "चालू" और php_value error_log पथ / फ़ाइल में।
कोड की आवश्यक जगह में ini_set फ़ंक्शन का उपयोग करें।
निष्कर्ष
PHP में त्रुटियों का आउटपुट एक आवश्यक उपकरण हैकोड डीबगिंग। लेकिन यह संभावित रूप से कमजोर क्षेत्रों को भी बना सकता है। इसलिए, इस तंत्र का सावधानीपूर्वक और ध्यान से उपयोग करना आवश्यक है। साइट या सेवा परीक्षण के सभी चरणों को पारित करने के बाद, आपको यह सुनिश्चित करना होगा कि यह त्रुटियों को प्रदर्शित न करे जिससे हमलावर महत्वपूर्ण डेटा तक पहुंच सके।