मैं हमेशा अधिक phpish $this->_request->getPost('this')
और $this->_request->getQuery('that')
(यह एक इतना getGet की getquery insteado साथ तार्किक नहीं किया जा रहा) का इस्तेमाल किया है।
इन दोनों में से सबसे अच्छा क्या है?(या यदि एक और बेहतर तरीका है)
getQuery()
की पसंद पर बस एक त्वरित स्पष्टीकरण। शब्द पसंद यह किस प्रकार का डेटा है, यह नहीं कि यह कैसे मिला। जीईटी और पोस्ट केवल अनुरोध विधि हैं, जिसमें पोस्ट अनुरोध के मामले में, "पोस्ट डेटा" के नाम से जाना जाने वाला सभी प्रकार की जानकारी शामिल है। एक जीईटी अनुरोध में ऐसा कोई ब्लॉक नहीं है, जो कोई वैरिएबल डेटा होता है वह यूआरएल की क्वेरी स्ट्रिंग (भाग के बाद का हिस्सा) का हिस्सा होता है।
तो, जबकि getPost()
एक पोस्ट अनुरोध के पद डेटा अनुभाग, से डेटा प्राप्त getQuery()
या तो किसी GET या पोस्ट अनुरोध (और साथ ही अन्य HTTP अनुरोध विधि) की क्वेरी स्ट्रिंग से डेटा प्राप्त करता है।
(ध्यान दें कि GET अनुरोध भी चीज के लिए नहीं किया जाना चाहिए कि एक पक्ष प्रभाव का उत्पादन हो सकता है, एक DB पंक्ति में फेरबदल की तरह)
तो, अपने पहले प्रश्न के उत्तर में, getPost()
और getQuery()
तरीकों का उपयोग, इस तरह से , आप सुनिश्चित कर सकते हैं कि डेटा स्रोत कहां है (यदि आपको परवाह नहीं है, getParams()
भी काम करता है, लेकिन इसमें अतिरिक्त डेटा शामिल हो सकता है)।
इस विधि के साथ PHP इनपुट को सत्यापित करने के लिए सबसे अच्छा अभ्यास क्या है?
इनपुट को मान्य करने के लिए सबसे अच्छी जगह है जहाँ आप पहले इसका इस्तेमाल होता है। ऐसा कहने के लिए, जब आप इसे getParams()
, getPost()
, या getQuery()
से खींचते हैं। इस तरह, आपका डेटा हमेशा जहां आपको इसकी आवश्यकता है, के लिए सही है, और यदि आप इसे पास करते हैं, तो आप जानते हैं कि यह सुरक्षित है। ध्यान रखें, अगर आप इसे किसी अन्य नियंत्रक (या नियंत्रक एक्शन) में पास करते हैं, तो आपको सुरक्षित होने के लिए, इसे फिर से जांचना चाहिए। आप यह कैसे करते हैं आपके आवेदन पर निर्भर करता है, लेकिन इसे अभी भी जांचना होगा।
मैं सहमत हूं और ज़ेंड फॉर्म को भी देखने का सुझाव दूंगा क्योंकि आप एक फॉर्म में फ़िल्टर और सत्यापनकर्ता संलग्न कर सकते हैं और फिर उस फॉर्म ऑब्जेक्ट के साथ आने वाले इनपुट को मान्य कर सकते हैं। इस तथ्य को न मानें कि यह एक फॉर्म ऑब्जेक्ट है - यह एक फिल्टर/सत्यापनकर्ता कंटेनर भी है। –