कुछ परिस्थितियों में, PHP वेब पेजों को एक समस्या का सामना करना पड़ सकता है जहां फॉर्म डेटा जमा करने के परिणामस्वरूप एक अतिरिक्त परिणाम होता है प्रत्येक दोहरे उद्धरण से पहले बैकस्लैश। यह समस्या एक सर्वर कॉन्फ़िगरेशन सुविधा के कारण उत्पन्न होती है जिसे मैजिक कोट्स के रूप में जाना जाता है।
जब मैजिक कोट्स सक्षम होते हैं, तो PHP स्वचालित रूप से डबल कोट्स सहित कुछ वर्णों से बच जाता है, जब उन्हें डेटाबेस या फॉर्म सबमिशन से भेजा या प्राप्त किया जाता है। हालांकि यह दुर्भावनापूर्ण उद्धरणों से बचकर SQL इंजेक्शन हमलों को रोक सकता है, यह सामान्य फॉर्म प्रोसेसिंग में भी हस्तक्षेप कर सकता है।
समस्या का समाधान
समस्या को हल करने के लिए, आप इसका उपयोग कर सकते हैं फॉर्म डेटा को डेटाबेस में सहेजने या पृष्ठ पर प्रदर्शित करने से पहले स्वचालित रूप से जोड़े गए बैकस्लैश को हटाने के लिए स्ट्रिप्सलैश () फ़ंक्शन। यहां एक उदाहरण है:
if (get_magic_quotes_gpc()) {
$input = stripslashes($input);
}
यह सशर्त विवरण जांचता है कि क्या जादुई उद्धरण सक्षम हैं और, यदि हां, तो स्ट्रिप्सलैश() का उपयोग करके $इनपुट वेरिएबल से बैकस्लैश को हटा देता है। यह आपको बिना किसी अतिरिक्त संशोधन के फॉर्म डेटा को सामान्य रूप से संसाधित करने की अनुमति देगा। विकास। उन्हें PHP 4 में पेश किया गया था और PHP 7.0.0 में हटा दिया गया था क्योंकि उन्होंने विभिन्न सुरक्षा और कोड संगतता समस्याएं पेश की थीं।
मैजिक कोट्स को अक्षम करने की आमतौर पर सिफारिश की जाती है क्योंकि यह अधिक पारदर्शी और सुरक्षित कोडिंग प्रथाओं की अनुमति देता है। आप अपनी PHP कॉन्फ़िगरेशन फ़ाइल को संशोधित करके और मैजिक_कोट्स_जीपीसी को ऑफ पर सेट करके मैजिक कोट्स को अक्षम कर सकते हैं। PHP में डेटा बनाएं और मैजिक कोट्स सक्षम होने पर भी इसकी इच्छित कार्यक्षमता सुनिश्चित करें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3