संपूर्ण $ _POST प्राप्त करने का उचित तरीका क्या है?


26

जुमला में! 2.5.x मैं बस चला सकता था JRequest::get('post');लेकिन जैसा JRequestकि जूमला में दर्शाया गया है! 3.x मैं उपयोग करना चाहिए JInput

इस क्षण में यह वह कोड है जिसका उपयोग मैं संपूर्ण प्राप्त करने के लिए कर रहा हूं $_POST:

$app = JFactory::getApplication();
$postData = $app->input->getArray(array_flip(array_keys($_POST)));

लेकिन यह बोझिल लगता है और मैं मुद्दों में भागता हूं अगर $app->input->set();मुझे लगता है कि एक बेहतर तरीका होगा?

जब मैंने लोगों को यह कहते हुए खोजा कि आप बस चला सकते हैं

$app = JFactory::getApplication();
$postData = $app->input->post;

लेकिन जब मैंने इसे आज़माया तो मुझे बस JInputवस्तु का एक उदाहरण मिला ।


जवाबों:


31
$app = JFactory::getApplication();
$postData = $app->input->post;

जाने का रास्ता है, आपको एक JInput ऑब्जेक्ट मिलेगा और इसे JRequest की तरह उपयोग कर सकते हैं

$var = $postData->get('varname', 'defaultvalue', 'filter');

फ़िल्टर 'int', 'cmd' या कई अन्य हो सकते हैं - पूरी सूची इस फ़ंक्शन में पाई जा सकती है: https://github.com/joomla/joomla-cms/blob/a3df15f1ddad6dad51d53f939b6afd2f5fca60b7/lbooks/joomla/filter/ .php # L138

यदि आप केवल सरणी पसंद करेंगे, तो आप कर सकते हैं

$array = $app->input->post->getArray();

लेकिन आपको बिना फ़िल्टर किए उपयोगकर्ता-डेटा तक पहुंचने की इस शैली से बचना चाहिए ।


1
कई बार मुझे $_POSTवास्तव में उन सभी के नामों की जानकारी के बिना संपूर्ण प्राप्त करने की आवश्यकता होती है, जिनके कारण मुझे उस JInputवस्तु का उपयोग करना पड़ता है, जो कई मामलों में उपयोगी नहीं है। हालांकि अभी भी एक अच्छा जवाब।
स्पेंकी

2
एक FYI के रूप में $app->input->post->getArray();यह केवल जूमला 3.2.0 और बाद में मान्य है। और किसी भी पहले के संस्करण (2.5 सहित) में आपको उपयोग करना होगा$app->input->getArray($_POST)
जॉर्ज विल्सन

3

इसे पूरा करने का एक और तरीका लगता है कि यह केवल एक खाली सरणी है:

$app = JFactory::getApplication();
$postData = $app->input->getArray(array());

यह JInputडेटा संस्करण में सब कुछ पुनः प्राप्त करेगा जैसे कि आप $_REQUESTसुपर तक पहुंच रहे थे ।

जूमला में यह काम नहीं करता है! JInputहालांकि 2.5.x संस्करण ।


-3

आशा है कि यह काम करेगा,

JRequest :: प्राप्त ( 'पोस्ट');

यह आपको PHP में $ _POST के बराबर डेटा प्राप्त करने में मदद करेगा।


2
प्रश्न स्पष्ट रूप से कहता है कि यह विधि पदावनत है, इसलिए ओपी JInput का उपयोग करके अद्यतन पद्धति की तलाश कर रहा है।
डेविड फ्रिट्च

@ हेराल्ड क्या आप अपने विशेष विशेषाधिकार के साथ इस उत्तर को शुद्ध करना चाहेंगे? यह उपयोगकर्ता "लंबे समय से चला गया" लगता है।
mickmackusa
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.