2011-06-13 8 views
38

सरल प्रश्न: क्या आप किसी पृष्ठ पर पोस्ट किए गए सभी डेटा प्राप्त करना संभव है, भले ही आप सभी फ़ील्ड नहीं जानते?PHP: स्वचालित रूप से सभी पोस्ट किए गए डेटा प्राप्त करना संभव है?

उदाहरण के लिए, मैं एक साधारण स्क्रिप्ट लिखना चाहता हूं जो किसी भी पोस्ट किए गए डेटा को एकत्र करता है और इसे ईमेल करता है। मैं भविष्यवाणी कर सकता हूं कि फॉर्म के खेतों में समय के साथ बहुत कुछ बदलने की संभावना है, और इसलिए मुझे लंबे समय तक कुछ समय बचाने के लिए, मैं सोच रहा था कि क्या मैं कुछ लिख सकता हूं जो स्वचालित रूप से सबकुछ इकट्ठा करता है?

क्या यह संभव है?

+2

बिल्कुल सिर्फ वैश्विक सरणियों का उपयोग $ _POST, $ _GET, $ _Ser ..... [कैसे एक पोस्ट में सभी चर हड़पने के लिए (PHP)] (की –

+2

संभव डुप्लिकेट http://stackoverflow.com/questions/ 3058336/कैसे-टू-हड़पने-सभी-चर-इन-ए-पोस्ट-php) – mario

उत्तर

73

ज़रूर। बस $_POST सरणी के माध्यम से चलना:

foreach ($_POST as $key => $value) 
echo "Field ".htmlspecialchars($key)." is ".htmlspecialchars($value)."<br>"; 
+4

@Django Reinhardt ध्यान दें कि गैर-चेक किए गए चेकबॉक्स '$ _POST' सरणी में दिखाई नहीं देते हैं, इसलिए यदि आप चेकबॉक्स का उपयोग करते हैं, तो आपको इसकी आवश्यकता होगी उदाहरण के लिए 'isset' का उपयोग करके उन्हें अलग-अलग संभाल लें। – jeroen

+0

क्या होगा यदि कोई फ़ाइल है, तो यह – bhawin

2

आप array_keys() का उपयोग कर $ _POST सरणी के सभी कुंजी प्राप्त कर सकते हैं, तो उन कुंजी के मूल्यों के साथ एक ई-मेल संदेशों का निर्माण।

var_dump($_POST) आपके लिए $ _POST में सभी जानकारी के बारे में जानकारी भी डंप करेगा।

1

हाँ आप का उपयोग केवल

 $input_data = $_POST; 

या extract() आप के लिए उपयोगी हो सकता है कर सकते हैं।

+2

'निकालने ($ _ POST) 'के साथ आएगी' '_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ऐसा मत करो। – netcoder

+1

@ नेटकोडर; मैं बस उसे सुझाव देता हूं कि यह उपयोगी हो सकता है; यह भी एक विकल्प है। और क्या आप कृपया मेरी टिप्पणियों को मूल्यवान बनाने के लिए एक उदाहरण देंगे। – diEcho

2

जब तक आप कोई विशेष स्वरूपण नहीं चाहते हैं: हाँ।

foreach ($_POST as $key => $value) 
    $body .= $key . ' -> ' . $value . '<br>'; 

जाहिर है, अधिक स्वरूपण आवश्यक होगा, हालांकि यह "आसान" तरीका है। जब तक मैं इस सवाल को गलत नहीं समझता।

तुम भी कुछ इस तरह कर सकता है (प्रारूप की तरह है और यदि आप, यह निश्चित रूप से आसान है):

$body = print_r($_POST, true); 
0

आप सब कुछ तक पहुँचने के लिए $_REQUEST के साथ-साथ $_POST उपयोग कर सकते हैं पोस्ट के रूप में इस तरह के, जाओ और कुकी डेटा ।

1

दूसरों को जोड़ने के लिए, var_export भी आसान हो सकता है:

$email_text = var_export($_POST, true); 
28

कोई भी उल्लेख किया कच्चे पोस्ट डाटा, लेकिन यह, जानना अच्छा है अगर पोस्ट किए गए डेटा कोई कुंजी है, लेकिन केवल मूल्य, उपयोग Raw Post Data:

$postdata = file_get_contents("php://input"); 

पीएचपी मैन:

php: // इनपुट केवल पढ़ने-योग्य स्ट्रीम है जो आपको अनुरोध निकाय से कच्चे डेटा पढ़ने की अनुमति देता है। POST अनुरोधों के मामले में, यह को $ HTTP_RAW_POST_DATA के बजाय php: // इनपुट का उपयोग करने के लिए बेहतर है क्योंकि यह विशेष php.ini निर्देशों पर निर्भर नहीं है।इसके अलावा, उन मामलों के लिए जहां $ HTTP_RAW_POST_DATA डिफ़ॉल्ट रूप से पॉप्युलेट नहीं किया गया है, यह संभावित रूप से हमेशा_पोपलेट_raw_post_data को सक्रिय करने के लिए कम स्मृति गहन विकल्प है। php: // इनपुट enctype = "multipart/form-data" के साथ उपलब्ध नहीं है। ।।

0
foreach ($_POST as $key => $value) 

गूंज "फील्ड" .htmlspecialchars ($ कुंजी) .htmlspecialchars ($ मूल्य) "
" "है";

+0

कृपया अपने उत्तर – Mazz

+0

को समझाएं और प्रारूपित करें, तो स्वीकृत उत्तर http://stackoverflow.com/a/6334857/2359679 का अंतर क्या है? – hassan

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

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