PHP में एरर कैसे दिखाएं: शुरुआती लोगों के लिए पूरी गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: जब कुछ गलत होता है तो PHP चुप क्यों रहता है?

\n\n

क्या आपने कभी PHP स्क्रिप्ट लिखी, ब्राउज़र में चलाई — और देखा... बस एक खाली सफेद पेज? कोई मैसेज नहीं, कोई संकेत नहीं। बस सन्नाटा और यह अहसास कि आपने कुछ गलत किया है। परिचित लग रहा है?

\n\n

यह PHP में शुरुआत करने वालों की सबसे आम समस्याओं में से एक है। Stack Overflow पर "How can I get useful error messages in PHP?" सवाल को हज़ारों बार देखा गया है। और कोई आश्चर्य नहीं: स्पष्ट एरर मैसेज के बिना डिबगिंग अंधेरे में तीर चलाने जैसी हो जाती है।

\n\n

इस लेख में हम जानेंगे कि PHP को कैसे "बोलने" पर मजबूर करें, ताकि वह ईमानदारी से बताए कि वास्तव में क्या गलत हुआ। आप जानेंगे कि कौन सी सेटिंग्स एरर दिखाने के लिए जिम्मेदार हैं, डेवलपमेंट के विभिन्न चरणों में उन्हें कैसे चालू करें, और अगर एरर फिर भी न दिखें तो क्या करें। चलिए शुरू करते हैं!

\n\n

PHP डिफ़ॉल्ट रूप से एरर क्यों छिपाता है?

\n\n

सेटिंग्स बदलने से पहले, आइए कारण समझें। PHP एक सर्वर-साइड भाषा है। लाइव (production) सर्वर पर यूज़र्स को एरर दिखाना बुरा अभ्यास है। कल्पना करें: किसी ई-कॉमर्स साइट की खूबसूरत पेज के बजाय ग्राहक को Fatal error: Call to undefined function दिखे। यह सिर्फ बदसूरत नहीं है, बल्कि असुरक्षित भी है — हैकर आपके कोड की संरचना जान सकता है।

\n\n

इसलिए PHP डेवलपर्स ने डिफ़ॉल्ट रूप से ब्राउज़र में एरर आउटपुट बंद रखा। लेकिन लोकल सर्वर (जैसे OpenServer, XAMPP, MAMP) या डेवलपमेंट स्टेज पर यह बहुत परेशान करता है। आइए इसे ठीक करें।

\n\n

तरीका 1: php.ini के ज़रिए एरर चालू करें (ग्लोबल)

\n\n

सबसे भरोसेमंद तरीका है php.ini कॉन्फ़िगरेशन फ़ाइल बदलना। इसे अपने PHP फ़ोल्डर में (या अपने लोकल सर्वर के कंट्रोल पैनल में) खोजें। फ़ाइल खोलें और निम्न पंक्तियाँ खोजें (या जोड़ें):

\n\n
display_errors = On\nerror_reporting = E_ALL\n
\n\n

इसका क्या मतलब है?

\n
    \n
  • display_errors = On — एरर को सीधे स्क्रीन पर (ब्राउज़र या कंसोल में) दिखाने की अनुमति देता है।
  • \n
  • error_reporting = E_ALL — PHP को सभी प्रकार की एरर दिखाने का निर्देश देता है: चेतावनियों (warnings) से लेकर घातक (fatal) एरर तक।
  • \n
\n\n

बदलाव के बाद वेब सर्वर (Apache, Nginx) को रीस्टार्ट करें। अब कोई भी स्क्रिप्ट एरर दिखाएगी।

\n\n

महत्वपूर्ण: लाइव सर्वर पर कभी display_errors = On न छोड़ें। Off का उपयोग करें और लॉगिंग सेट करें (इसके बारे में नीचे बताया गया है)।

\n\n

तरीका 2: स्क्रिप्ट में ही एरर चालू करें (त्वरित तरीका)

\n\n

अगर आपके पास php.ini तक पहुँच नहीं है (जैसे shared-होस्टिंग पर), या आप सिर्फ एक फ़ाइल के लिए एरर चालू करना चाहते हैं, तो ini_set() और error_reporting() फ़ंक्शन का उपयोग करें। अपनी PHP स्क्रिप्ट की शुरुआत में ये पंक्तियाँ जोड़ें:

\n\n
<?php\nini_set('display_errors', 1);\nini_set('display_startup_errors', 1);\nerror_reporting(E_ALL);\n\n// आपका कोड आगे\n$foo = 1/0; // Warning: Division by zero दिखाएगा\n?>\n
\n\n

पंक्तियों की व्याख्या:

\n
    \n
  • ini_set('display_errors', 1) — स्क्रीन पर एरर आउटपुट चालू करता है।
  • \n
  • ini_set('display_startup_errors', 1) — PHP स्टार्टअप के दौरान होने वाली एरर (जैसे स्क्रिप्ट लोड न होना) दिखाता है।
  • \n
  • error_reporting(E_ALL) — सभी एरर लेवल दिखाता है।
  • \n
\n\n

यह तरीका तुरंत काम करता है और सर्वर रीस्टार्ट की ज़रूरत नहीं है। त्वरित डिबगिंग के लिए एकदम सही।

\n\n

तरीका 3: .htaccess का उपयोग करें (Apache के लिए)

\n\n

अगर आप Apache सर्वर का उपयोग करते हैं, तो आप साइट की रूट फ़ोल्डर में .htaccess फ़ाइल के ज़रिए एरर चालू कर सकते हैं। इसमें जोड़ें:

\n\n
php_flag display_errors on\nphp_value error_reporting E_ALL\n
\n\n

फ़ाइल सेव करने के बाद, इस फ़ोल्डर और इसकी उप-फ़ोल्डरों की सभी स्क्रिप्ट्स में एरर दिखने लगेंगे। जब जल्दी से डिबगिंग चालू करनी हो तो यह बहुत सुविधाजनक है।

ब्लॉग

पुस्तक अनुशंसाएँ