"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > सामान्य PHP त्रुटियाँ: बार-बार आने वाली समस्याओं का समाधान

सामान्य PHP त्रुटियाँ: बार-बार आने वाली समस्याओं का समाधान

2024-11-17 को प्रकाशित
ब्राउज़ करें:140

Common PHP Errors: Solutions to Frequently Encountered Issues

PHP एक शक्तिशाली स्क्रिप्टिंग भाषा है जिसका व्यापक रूप से वेब विकास के लिए उपयोग किया जाता है, लेकिन किसी भी भाषा की तरह, इसमें त्रुटियां होना आसान है जिन्हें डीबग करना निराशाजनक हो सकता है। हालाँकि कुछ त्रुटियाँ सरल और ठीक करने में आसान हैं, अन्य थोड़ी अधिक जटिल हो सकती हैं। यह आलेख कुछ सर्वाधिक सामान्य PHP त्रुटियों को शामिल करता है और उन्हें शीघ्रता से हल करने में आपकी सहायता के लिए समाधान प्रदान करता है।

1. सिंटैक्स त्रुटियां

संकट:

एक वाक्यविन्यास त्रुटि तब होती है जब PHP दुभाषिया को ऐसे कोड का सामना करना पड़ता है जो अपेक्षित संरचना के अनुरूप नहीं होता है। ये सबसे बुनियादी प्रकार की त्रुटियां हैं और अक्सर खतरनाक पार्स त्रुटि का परिणाम होती हैं: सिंटैक्स त्रुटि, अप्रत्याशित टोकन संदेश।

सामान्य कारणों में:

  • लुपित अर्धविराम (;)
  • बेजोड़ कोष्ठक, घुंघराले ब्रेसिज़, या कोष्ठक
  • उद्धरण चिह्नों का गलत उपयोग
  • गलत वर्तनी वाले कीवर्ड

उदाहरण:

echo "Hello World" // Missing semicolon

समाधान:

छूटे हुए या अतिरिक्त विराम चिह्नों के लिए अपने कोड की दोबारा जांच करें। सुनिश्चित करें कि आपके सभी प्रारंभिक और समापन कोष्ठक, कोष्ठक और उद्धरण मेल खाते हों।

echo "Hello World"; // Fixed

2. अपरिभाषित परिवर्तनीय त्रुटि

संकट:

एक "अपरिभाषित वैरिएबल" त्रुटि तब होती है जब आप एक ऐसे वैरिएबल का उपयोग करने का प्रयास करते हैं जिसे प्रारंभ नहीं किया गया है। इस मामले में PHP एक नोटिस देगा: अपरिभाषित परिवर्तनीय त्रुटि।

उदाहरण:

echo $username; // Undefined variable

समाधान:

सुनिश्चित करें कि वेरिएबल को आपके कोड में उपयोग करने से पहले प्रारंभ किया गया है। आप यह जांच कर भी इस नोटिस को दबा सकते हैं कि वेरिएबल isset() का उपयोग करके सेट किया गया है या नहीं।

if (isset($username)) {
    echo $username;
} else {
    echo "No username provided";
}

3. घातक त्रुटि: अपरिभाषित फ़ंक्शन पर कॉल करें

संकट:

यह त्रुटि तब होती है जब आप किसी ऐसे फ़ंक्शन को कॉल करने का प्रयास करते हैं जिसे परिभाषित नहीं किया गया है। ऐसा इसलिए हो सकता है क्योंकि आपने फ़ंक्शन नाम की गलत वर्तनी लिखी है या फ़ंक्शन वाली आवश्यक फ़ाइल शामिल करना भूल गए हैं।

उदाहरण:

myFunction(); // Undefined function

समाधान:

सुनिश्चित करें कि फ़ंक्शन ठीक से परिभाषित है या आपकी स्क्रिप्ट में शामिल है। इसके अलावा, फ़ंक्शन नाम में टाइपो त्रुटियों की जांच करें।

function myFunction() {
    echo "Hello World!";
}

myFunction(); // Fixed

4. शीर्षलेख पहले ही भेजे जा चुके हैं

संकट:

यह त्रुटि तब होती है जब ब्राउज़र में आउटपुट पहले ही भेजे जाने के बाद PHP हेडर को संशोधित करने का प्रयास करता है (उदाहरण के लिए, हेडर() या सेटकुकी() के साथ)। त्रुटि संदेश आम तौर पर इस तरह दिखता है: चेतावनी: हेडर जानकारी को संशोधित नहीं किया जा सकता - हेडर पहले ही भेज दिया गया है...

उदाहरण:

echo "Some output";
header("Location: /newpage.php"); // Causes error because output was already sent

समाधान:

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

header("Location: /newpage.php"); // This must appear before any echo or print statements
exit();

5. गलत अनुमतियाँ

संकट:

अनुमति त्रुटियां तब होती हैं जब आपकी PHP स्क्रिप्ट में फ़ाइलों या निर्देशिकाओं तक पहुंचने के लिए उचित पढ़ने या लिखने की अनुमति नहीं होती है। आपको चेतावनी जैसी त्रुटियां दिखाई दे सकती हैं: fopen(/path/to/file): स्ट्रीम खोलने में विफल: अनुमति अस्वीकृत।

समाधान:

फ़ाइल और निर्देशिका अनुमतियों की जाँच करें। आमतौर पर, वेब सर्वर उपयोगकर्ताओं के पास फ़ाइलों के लिए पढ़ने की अनुमति और उन निर्देशिकाओं के लिए लिखने की अनुमति होनी चाहिए जहां अपलोड या फ़ाइल हेरफेर होते हैं। अनुमतियाँ समायोजित करने के लिए निम्न आदेश का उपयोग करें:

chmod 755 /path/to/directory
chmod 644 /path/to/file

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

6. मेमोरी सीमा समाप्त हो गई

संकट:

जब PHP की आवंटित मेमोरी खत्म हो जाती है, तो आपको एक घातक त्रुटि दिखाई देगी: एक्स बाइट्स की अनुमत मेमोरी आकार समाप्त हो गई त्रुटि। ऐसा तब होता है जब कोई स्क्रिप्ट php.ini में निर्धारित सीमा से अधिक मेमोरी का उपयोग करती है।

समाधान:

आप अपनी PHP स्क्रिप्ट में निम्नलिखित पंक्ति जोड़कर मेमोरी सीमा को अस्थायी रूप से बढ़ा सकते हैं:

ini_set('memory_limit', '256M'); // Adjust as needed

वैकल्पिक रूप से, आप php.ini फ़ाइल में मेमोरी सीमा को स्थायी रूप से बढ़ा सकते हैं:

memory_limit = 256M

जहां संभव हो मेमोरी उपयोग को कम करने के लिए अपने कोड को अनुकूलित करना सुनिश्चित करें।

7. MySQL कनेक्शन त्रुटि

संकट:

MySQL डेटाबेस से कनेक्ट करना कभी-कभी विफल हो सकता है, जिसके परिणामस्वरूप घातक त्रुटि: अनकॉट mysqli_sql_exception: एक्सेस अस्वीकृत फॉर यूजर 'यूजरनेम'@'लोकलहोस्ट' जैसी त्रुटि हो सकती है।

सामान्य कारणों में:

  • गलत डेटाबेस क्रेडेंशियल (होस्टनाम, उपयोगकर्ता नाम, पासवर्ड, डेटाबेस नाम)
  • MySQL सर्वर नहीं चल रहा है
  • गलत PHP MySQL एक्सटेंशन (उदाहरण के लिए, mysqli_connect() के बजाय mysql_connect() का उपयोग करना)

समाधान:

सुनिश्चित करें कि आपके क्रेडेंशियल सही हैं और MySQL सर्वर चल रहा है। साथ ही, उचित कनेक्शन फ़ंक्शन का उपयोग करना सुनिश्चित करें। यहां mysqli_connect() का उपयोग करके एक सही उदाहरण दिया गया है:

$mysqli = new mysqli('localhost', 'username', 'password', 'database');

if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

8. फ़ाइल अपलोड त्रुटियाँ

संकट:

अनुचित सेटिंग्स या फ़ाइल आकार सीमाओं के कारण फ़ाइल अपलोड अक्सर विफल हो जाते हैं। आपको UPLOAD_ERR_INI_SIZE या UPLOAD_ERR_FORM_SIZE जैसी त्रुटियों का सामना करना पड़ सकता है।

समाधान:

निम्नलिखित php.ini सेटिंग्स को आवश्यकतानुसार जांचें और समायोजित करें:

file_uploads = On
upload_max_filesize = 10M
post_max_size = 12M

साथ ही, सुनिश्चित करें कि आपके फ़ॉर्म टैग में सही enctype विशेषता है:

9. अपरिभाषित सूचकांक/ऑफसेट

संकट:

यह नोटिस तब होता है जब आप किसी ऐसे सरणी तत्व तक पहुंचने का प्रयास करते हैं जो मौजूद नहीं है, जिससे नोटिस: अपरिभाषित सूचकांक या नोटिस: अपरिभाषित ऑफसेट त्रुटि उत्पन्न होती है।

उदाहरण:

echo $_POST['username']; // Undefined index if 'username' is not in the form data

समाधान:

ऐरे कुंजी तक पहुंचने का प्रयास करने से पहले हमेशा जांच लें कि सरणी कुंजी मौजूद है या नहीं। इस त्रुटि को रोकने के लिए isset() या array_key_exists() का उपयोग करें।

if (isset($_POST['username'])) {
    echo $_POST['username'];
} else {
    echo "Username not provided.";
}

10. कक्षा नहीं मिली

संकट:

PHP एक घातक त्रुटि फेंकता है: जब आप एक ऐसे वर्ग को इंस्टेंट करने का प्रयास करते हैं जिसे ठीक से परिभाषित या शामिल नहीं किया गया है तो क्लास 'क्लासनेम' को त्रुटि नहीं मिली।

समाधान:

सुनिश्चित करें कि क्लास वाली फ़ाइल require() या include() का उपयोग करके शामिल की गई है। वैकल्पिक रूप से, क्लास फ़ाइलों को स्वचालित रूप से लोड करने के लिए PHP के spl_autoload_register() फ़ंक्शन का उपयोग करें।

spl_autoload_register(function ($class_name) {
    include $class_name . '.php';
});

$object = new ClassName();

11. अधिकतम निष्पादन समय पार हो गया

संकट:

यदि आपकी PHP स्क्रिप्ट को निष्पादित होने में बहुत अधिक समय लगता है, तो आपको घातक त्रुटि का सामना करना पड़ सकता है: X सेकंड का अधिकतम निष्पादन समय पार हो गया त्रुटि। यह आमतौर पर बड़े डेटासेट या बाहरी एपीआई कॉल के साथ काम करते समय होता है।

समाधान:

आप अधिकतम निष्पादन समय को अस्थायी रूप से बढ़ा सकते हैं:

set_time_limit(300); // Extends to 300 seconds (5 minutes)

इसे विश्व स्तर पर सेट करने के लिए, php.ini फ़ाइल में max_execution_time निर्देश समायोजित करें:

max_execution_time = 300

PHP त्रुटियां अपरिहार्य हैं, लेकिन सबसे आम त्रुटियों से निपटने का तरीका जानने से आप डिबगिंग का बहुत सारा समय बचा सकते हैं। चाहे वह सिंटैक्स समस्या हो, डेटाबेस कनेक्शन समस्या हो, या फ़ाइल अनुमति त्रुटि हो, मूल कारण और समाधान को समझना एक कुशल PHP डेवलपर बनने की कुंजी है।

इस लेख में दिशानिर्देशों का पालन करके, आपको इन मुद्दों को प्रभावी ढंग से पहचानने और हल करने में सक्षम होना चाहिए। इन त्रुटियों को शीघ्र पकड़ने और सहज कोडिंग सुनिश्चित करने के लिए विकास के दौरान अपनी त्रुटि रिपोर्टिंग सक्षम रखें!

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/pralahdyeri/common-php-errors-solutions-to-frequently-encountered-issues-3mn0?1?1?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163 पर संपर्क करें। इसे हटाने के लिए com
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3