Biraz arka plan: Güvenlik duvarımın arkasında bir apache sunucusuna veri göndermesi gereken bir genel web sitesinde bir formum var. Bu web sunucusuna internet üzerinden doğrudan erişim sağlamak istemiyorum.HTTP form iletisini yeniden yönlendirme
Şu anda yapıyorum şu: DMZ'de bir IIS sunucum var, bu IIS sunucusu, güvenlik duvarından apache sunucusuna erişmesine izin verilen tek IP'dir. Geçici bir çözüm olarak, IIS'yi Apache kutusunu IIS üzerinden internete sunmak için IIS'yi "Uygulama İsteği Yönlendirme" ile kuruyorum.
* Ne yapmak isterim: * Apache kutusunu internete sunmak zorunda kalmadan formu yakalayıp aktarmanın bir yolunu bulun. Buradaki hile, POST'un internetteki herhangi bir yerden geleceği, IIS sunucusu tarafından yakalanacağı ve daha sonra IIS sunucusundan apache kutusuna aktarılacağıdır. PHP/cURL ile bunu içine baktı ama hile olacaktır böyle bir şey kullanmıyor emin eğer duyuyorum ettik:
<?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);
?>
birisi bana doğru yönde işaret edebilir? Teşekkürler.
Doğru yoldasınız. Bunu böyle yapardım: 1. Ham isteği al 2. IIS sunucusuna ilet. Şu soruları deneyin: http://stackoverflow.com/questions/1361673/get-raw-post-data http://stackoverflow.com/questions/869927/php-difference-between-curl-and-httprequest – Brian
Evet doğru fikre sahip olmak. 'CURLOPT_POSTFIELDS' doğrudan' $ _POST' dizisini alabilir, anahtar değer dizesini oluşturmanıza gerek yoktur. Ayrıca muhtemelen sonucu kontrol etmek ve sonuçların kamuya açık bir şekilde yorumlanmasını mı istiyorsunuz? 'curl_exec()', "CURLOPT_RETURNTRANSFER" öğesini ayarladıysanız yanıtı döndürür. – MrCode
Tamam, yukarıdaki kod, çoğunlukla, doğru şekilde çalışıyor. Formumda "ad, telefon, e-posta, posta kodu" gibi düzgün bir şekilde geçirilen alanlar var. Temelde birden çok değeri olmayan bir şey. Parasal değerlere sahip bazı ek alanlarim var. Bunlar geçtikten sonra arka plan programım "Array" ile alanları doldurur, bu alanların her biri için bir dizi tanımlamam gerekir mi? Burada ne yapacağından emin değilim, uzmanlığım Kes ve Yapıştır. – jqapi