एक छोटी पृष्ठभूमि: मेरे पास एक सार्वजनिक वेबसाइट पर एक फॉर्म है जिसे मेरे फ़ायरवॉल के पीछे एक अपाचे सर्वर पर डेटा पोस्ट करने की आवश्यकता है। मैं इंटरनेट से इस वेबहोस्ट तक सीधे पहुंच प्रदान नहीं करना चाहता हूं।HTTP फॉर्म पोस्ट को रीडायरेक्ट करना
वर्तमान में यह मैं कर रहा हूं: मेरे पास मेरे डीएमजेड में आईआईएस सर्वर है, यह आईआईएस सर्वर एकमात्र आईपी है जो फ़ायरवॉल के माध्यम से अपाचे सर्वर तक पहुंचने की अनुमति देता है। अस्थायी समाधान के रूप में मैंने इंटरनेट पर आईआईएस के माध्यम से अपाचे बॉक्स पेश करने के लिए "एप्लिकेशन अनुरोध रूटिंग" के साथ आईआईएस सेटअप किया।
* मैं क्या करना चाहता हूं: * कैप्चर करने के लिए कुछ तरीका है और फिर इंटरनेट पर अपाचे बॉक्स पेश किए बिना फॉर्म को रिले करें। यहां चाल यह है कि पोस्ट इंटरनेट पर कहीं से भी आएगा, आईआईएस सर्वर द्वारा पकड़ा जाएगा, और उसके बाद आईआईएस सर्वर से अपाचे बॉक्स में रिले किया जाएगा। मैं PHP/cURL के साथ ऐसा करने में देखा लेकिन यकीन नहीं अगर कुछ इस तरह का उपयोग कर चाल क्या करेंगे हूं:
<?php
$todo = "";
while (list($name, $value) = each($HTTP_POST_VARS)) {
$todo.=$name."=".$value."&";
}
$ch = curl_init('http://mylanserver/capture.php');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $todo);
curl_exec ($ch);
curl_close ($ch);
?>
कोई सही दिशा में मुझे बात कर सकते हैं? धन्यवाद।
आप सही रास्ते पर हैं। मैं इसे इस तरह से करूँगा: 1. कच्चे अनुरोध प्राप्त करें 2. इसे आईआईएस सर्वर पर अग्रेषित करें। इन सवालों का प्रयास करें: http://stackoverflow.com/questions/1361673/get-raw-post-data http://stackoverflow.com/questions/869927/php-difference-between-curl-and-httprequest – Brian
हां आप सही विचार है। 'CURLOPT_POSTFIELDS' सीधे' $ _POST' सरणी ले सकता है, आपको कुंजी मान स्ट्रिंग बनाने की आवश्यकता नहीं है। इसके अलावा आप शायद परिणाम जांचना चाहते हैं और फिर सार्वजनिक उपयोगकर्ता को परिणाम की कुछ व्याख्या प्रदर्शित करना चाहते हैं? यदि आप 'CURLOPT_RETURNTRANSFER' सेट करते हैं तो' curl_exec() 'प्रतिक्रिया देता है। – MrCode
ठीक है, उपरोक्त कोड अधिकांश भाग के लिए ठीक से काम करता है। मेरे पास मेरे फॉर्म में फ़ील्ड हैं जैसे "नाम, फोन, ईमेल, ज़िप" जिन्हें ठीक से पारित किया जा रहा है। मूल रूप से कई मूल्यों के बिना कुछ भी। मेरे पास मौद्रिक मूल्यों के साथ कुछ अतिरिक्त फ़ील्ड हैं। जब वे पास किए जाते हैं तो मेरा बैकएंड प्रोग्राम "ऐरे" वाले फ़ील्ड को पॉप्युलेट करता है, क्या मुझे इन क्षेत्रों में से प्रत्येक के लिए एक सरणी परिभाषित करने की आवश्यकता है? निश्चित नहीं है कि यहां क्या करना है, मेरी विशेषता कट और पेस्ट है। – jqapi