2010-05-03 17 views
16

मैं मूलभूत स्वच्छता और फॉर्म डेटा के सत्यापन के लिए PHP फ़िल्टर का उपयोग कर रहा हूं।PHP फ़िल्टर, इनपुट सरणी को फ़िल्टर करने के लिए कैसे करें

मेरे पास जो सिद्धांत समस्या है, वह है कि मैं अपना फॉर्म चिह्नित करता हूं ताकि सभी डेटा POST इनपुट के लिए एक सरणी में हो। जैसे प्रपत्र फ़ील्ड्स, पेज [नाम], पेज [स्लग], पेज [शरीर], पेज [स्थिति], आदि

निम्नलिखित का उपयोग करना:

filter_input(INPUT_POST, 'page[name]', FILTER_SANITIZE_STRING); 
OR 
filter_input(INPUT_POST, "page['name']", FILTER_SANITIZE_STRING); 

मैं चर का उपयोग करने में असमर्थ हूँ। किसी कृपया मुझे सही नाम filter_input()

+0

btw मैं google पर पागल की तरह खोज करता हूं और कुछ भी नहीं बदलता। –

+0

क्या आप सुनिश्चित हैं कि परिवर्तनीय को sanitizing से पहले एक मूल्य है? –

+0

@anthony हाँ इसका मूल्य है, अगर मैं इसे नाम के माध्यम से भेजता हूं तो यह ठीक है। इस फ़िल्टर विधि का उपयोग कर सरणी कुंजी तक पहुंचने के लिए नोटेशन को सुनिश्चित न करें। –

उत्तर

14

मुझे नहीं लगता कि आप एक मूल्य का उपयोग कर सकते हैं का उपयोग कर सरणी डेटा का उपयोग करने का उपयोग करने के (आसानी से, के रूप में आप चाहते हैं) बता सकते हैं , हालांकि आप केवल page सरणी फ़िल्टर कर सकते हैं और इच्छित मान प्राप्त कर सकते हैं।

$page = filter_input(INPUT_POST, 'page', FILTER_SANITIZE_STRING, FILTER_REQUIRE_ARRAY); 
if (array_key_exists('name', $page)) { 
    $name = $page['name']; 
} 

या, यदि आप कच्चे इनपुट के साथ काम करने की क्षमता खोने के साथ ठीक कर रहे हैं तो आप सिर्फ इस्तेमाल कर सकते हैं:

if (isset($_POST['page']['name'])) { 
    $name = filter_var($_POST['page']['name'], FILTER_SANITIZE_STRING); 
} 

दोनों, हालांकि, बहुत बदसूरत हैं।

+0

हाँ, दोनों सुपर बदसूरत हैं। मैं फॉर्म को एकल var नामों में भी स्विच कर सकता हूं, और समस्या से बच सकता हूं। शर्म की बात है कि समर्थित नहीं है। –

+0

बिल्कुल। आपके मामले में काम करने के लिए एकल नाम अधिक सुविधाजनक (फ़िल्टर एक्सटेंशन के लिए) हैं; दुर्भाग्य से। – salathe

+0

कृपया @ फ्लेचर मूर के जवाब की जांच करें। बहुत सुरुचिपूर्ण और प्रभावी! – patrick

8

कैसे

के बारे में
$_POST['page'] = filter_var_array($_POST['page'], FILTER_SANITIZE_STRING); 
+0

क्या इस तरह के मान को संशोधित करना अच्छा है? –

संबंधित मुद्दे