Bir POST isteği içinde PHP Post Talebi

3 Cevap php

There is a contact form which current action is http://www.siteA.com/ContactInfo.php, it sends fields and values. In ContactInfo.php, i just catch the values and send and email to y@z.x

ANCAK, ContactInfo.php içeride, diğer etki, başka bir hedefe aynı veri göndermek gerekir http://www.SiteB.com/Reg.aspx

Ben SiteB bir http POST isteği oluşturmak için dışarı uğraş vermişler, fakat bu bile aynı sitede başka bir dosya ile, çalışmaz.

Ben şu anda kodu değil, ama bu yapıya benzer.

<? php
   //ContactInfo.php
   // CATCTH VALUES and SEND EMAIL

   // CREATE Http POST REquest to another www.siteB.com/Reg.aspx
?>

Ben ... HttpRequest nesnesi, cURL, ve diğer birini kullanarak dışarı uğraş var ... ben adını hatırlayamıyorum.

3 Cevap

Bu kullanarak cURL (http://www.php.net/manual/en/curl.examples.php) gibi bir şey deneyebilirsiniz ..

$sub_req_url = "http://www.siteB.com/Reg.aspx";

$ch = curl_init($sub_req_url);
$encoded = '';

// include GET as well as POST variables; your needs may vary.
foreach($_GET as $name => $value) {
  $encoded .= urlencode($name).'='.urlencode($value).'&';
}

foreach($_POST as $name => $value) {
  $encoded .= urlencode($name).'='.urlencode($value).'&';
}

// chop off last ampersand
$encoded = substr($encoded, 0, strlen($encoded)-1);

curl_setopt($ch, CURLOPT_POSTFIELDS,  $encoded);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_exec($ch);
curl_close($ch);

Shamly

Ben Snoopy Class denemenizi öneririm. Bu gerçekten oldukça basit:

<?php

  $vars = array("fname"=>"Jonathan","lname"=>"Sampson");
  $snoopy = new Snoopy();

  $snoopy->httpmethod = "POST";
  $snoopy->submit("http://www.siteB.com/Reg.aspx", $vars);

  # Use the following if you need to view the results
  # print $snoopy->results;

?>

Kodunuzu görmeden sorunun ne olduğunu söylemek zor.

Sorular:

Sitesi B de kendi etki alanı mı, yoksa üçüncü parti? Bu üçüncü parti ise onlar bot kontrollerini çalışıyor olabilir ve bunun gibi sizin POST başarısız olur.

Eğer veri B etki alanına göndermek ediliyor aslında olduğunu teyit etmek için bir şey yaptın mı?

Etki alanı B sizin kontrolünüz altında ise, benim tahminim bunlar aynı web sunucusu üzerinde çalışan bir - neden sadece alanı içine bu alanı B'ye göndermek zorunda kalmadan yapılması gereken ne olursa olsun yapar bir sayfa mantığı yazmak değil mi?