2008-10-30 12 views
12

मैं php में एक पृष्ठ रखना चाहता हूं जो सामान्य रूप से भेजे गए GET अनुरोध के आधार पर जानकारी प्रदर्शित करता है। हालांकि, मैं इसके लिए कुछ POST अनुरोधों को संसाधित करने में भी सक्षम होना चाहता हूं। तो, मैं कैसे बता सकता हूं कि POST द्वारा कोई डेटा भेजा गया था, इसलिए मैं इस पर कार्य कर सकता हूं?कोई व्यक्ति php पेज के लिए कैसे कहूं यदि कोई पोस्ट पोस्ट या प्राप्त करता है?

उत्तर

30

यह निर्धारित करने के लिए कि आपके पृष्ठ को GET या POST अनुरोध के माध्यम से एक्सेस किया गया था, $_SERVER['REQUEST_METHOD'] का उपयोग करें।

यदि इसे पोस्ट के माध्यम से एक्सेस किया गया था तो प्रक्रिया के लिए $_POST में किसी भी चर के लिए जांचें।

+0

ध्यान रखें, हालांकि, जीईटी और पोस्ट से अधिक अनुरोध विधियां हैं। तो यह न देखें कि यह प्राप्त हो गया है और अन्यथा इसे पोस्ट करें, इसे पोस्ट करें और अन्यथा मान लें कि यह प्राप्त हो गया है। – Lemming

-1
!empty($_POST) 

मैं बहुत यकीन है कि आप प्राप्त और पोस्ट के माध्यम से एक पृष्ठ का उपयोग कर सकते हैं, तो यह सबसे सुरक्षित तरीका IMO

4

चेक $_SERVER['REQUEST_METHOD'] होगा। दस्तावेज here है।

6

यदि आप दोनों पोस्ट और जीईटी द्वारा वही चर पारित करना चाहते हैं तो आप हमेशा अनुरोध का उपयोग कर सकते हैं जिसमें POST और GET दोनों के पैरामीटर शामिल हैं। हालांकि, इसे आम तौर पर सुरक्षा भेद्यता के रूप में देखा जाता है क्योंकि इसका मतलब है कि चर को आसानी से खराब किया जा सकता है।

आप क्या अनुरोध पोस्ट भेजा गया था पर परीक्षण या प्राप्त करना चाहते हैं तो आप या तो:

if($_SERVER['REQUEST_METHOD'] === 'post') 
{ 
    // Do one thing 
} 
elseif($_SERVER['REQUEST_METHOD'] === 'get') 
{ 
    // Do another thing 
} 

या:

if(!empty($_POST)) 
{ 
    // Process POST 
} 
elseif(!empty($_GET)) 
{ 
    // Process GET 
} 
+2

सुरक्षा भेद्यता? अजीब बात है. – moo

+0

मैं orandu63 के साथ हूं, चर आसानी से (बहुत आसानी से) धोखा दिया जा सकता है चाहे वे सर्वर द्वारा पोस्ट या जीईटी द्वारा भेजे गए हों। – Kibbee

+0

मैं केवल यह सुझाव दे रहा हूं कि POQUEST का उपयोग POST का उपयोग करने से स्पष्ट रूप से कम सुरक्षित है या स्पष्ट रूप से प्राप्त करें। कम सुरक्षित == भेद्यता जो मौजूद नहीं है। –

2

इस तरह सवाल है, आमतौर पर वातावरण चर के बारे में के लिए, यहाँ है मैं उन्हें कैसे समझता हूं:

  • एक foo.php बनाएं जो केवल phpinfo() को कॉल करता है;
  • प्राप्त foo.php
  • पोस्ट foo.php को
  • phpinfo के उत्पादन की तुलना(); और क्या व्यवहार
  • php.net

पर डॉक्स के खिलाफ मेरी सिद्धांत सत्यापित करें यह बहुत ज्यादा php.net के डॉक दलदल में जवाब खोजने की कोशिश की तुलना में आसान है के बारे में मेरे सिद्धांतों हैं।

0

मैं $ _REQUEST चर का उपयोग करता है, तो एक पृष्ठ और

यह भी कुछ पोस्ट अनुरोध

http://is.php.net/manual/en/reserved.variables.request.php

पुस्तिका से प्रोसेस करने में सक्षम होने की जरूरत है के लिए है:

एक सहयोगी सरणी जो डिफ़ॉल्ट रूप से $ _GET, $ _POST और $ _COOKIE की सामग्री शामिल करती है ।

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