पैरामीटर (ओं) से isset()
एक चर संदर्भ होना चाहिए न कि एक अभिव्यक्ति (आपके मामले में एक संयोजन); लेकिन आप कई शर्तों को एक साथ इस तरह समूहित कर सकते हैं:
if (isset($_POST['search_term'], $_POST['postcode'])) {
}
यह true
लौटाएगा केवल अगर सभी isset()
. के लिए तर्क सेट हैं और उनमें null
नहीं है ।
ध्यान दें कि isset($var)
और isset($var) == true
एक ही प्रभाव है, इसलिए उत्तरार्द्ध कुछ हद तक बेमानी है।
अपडेट करें
आपकी अभिव्यक्ति का दूसरा भाग empty()
. का उपयोग करता है इस तरह:
empty ($_POST['search_term'] . $_POST['postcode']) == false
यह ऊपर के समान कारणों से गलत है। वास्तव में, आपको empty()
की आवश्यकता नहीं है यहाँ, क्योंकि उस समय तक आप पहले ही जाँच चुके होंगे कि वेरिएबल सेट हैं या नहीं, इसलिए आप इस तरह से पूर्ण एक्सप्रेशन को शॉर्टकट कर सकते हैं:
isset($_POST['search_term'], $_POST['postcode']) &&
$_POST['search_term'] &&
$_POST['postcode']
या समकक्ष अभिव्यक्ति का उपयोग करना:
!empty($_POST['search_term']) && !empty($_POST['postcode'])
अंतिम विचार
आपको filter
का उपयोग करने पर विचार करना चाहिए इनपुट को प्रबंधित करने के लिए कार्य करता है:
$data = filter_input_array(INPUT_POST, array(
'search_term' => array(
'filter' => FILTER_UNSAFE_RAW,
'flags' => FILTER_NULL_ON_FAILURE,
),
'postcode' => array(
'filter' => FILTER_UNSAFE_RAW,
'flags' => FILTER_NULL_ON_FAILURE,
),
));
if ($data === null || in_array(null, $data, true)) {
// some fields are missing or their values didn't pass the filter
die("You did something naughty");
}
// $data['search_term'] and $data['postcode'] contains the fields you want
बीटीडब्ल्यू, आप सबमिट किए गए मानों के विभिन्न हिस्सों की जांच करने के लिए अपने फ़िल्टर को कस्टमाइज़ कर सकते हैं।