Dış url + kıvrılmasına Post form verileri

3 Cevap php

Ben harici url veri göndermek için kullanmaya çalışıyorum bu formu var. Php curl kullanarak bazı çok temel knowlegde var. Ben bu kodu kullanırsanız Şimdiye kadar ben yazdım ki:

<?php
    if ($_POST['request_callback'])
    {
      $customer_name = cleaninput($_REQUEST['customer_name'],"text");
      $debtor_id = cleaninput($_REQUEST['debtor_id'],"number");
      $telephone_number = cleaninput($_REQUEST['customer_number'],"number");

      if ($_POST['callme_now'] == '1') {
         $callback_time = date('y-m-d ' . $_POST['hour_select'] . ':' . $_POST['minute_select'] . ':s');
      } else {
         $callback_time = date('y-m-d H:i:s');
      }

      // Send using CURL 
      $ch = curl_init(); 
      curl_setopt( $ch, CURLOPT_URL, "http://www.myjoomla.eo/test.php"); // URL to post 
      curl_setopt ($ch, CURLOPT_POST, 1);
      curl_setopt ($ch, CURLOPT_POSTFIELDS,         "Name=$customer_name&Debtor_ID=$debtor_id&Telephone_Number=$telephone_number&CallBack_Time=$callback_time");
      curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
      $result = curl_exec( $ch ); // runs the post 
      curl_close($ch);
      echo "Reply Response: " . $result; // echo reply response
     }
?>

Şimdiye kadar, bu dosyaya göndermek yapar ve sonuçları ekran vardır. Şimdi nasıl xml formatında içine nakledilmiş verileri biçimlendirmek? İdeal olarak, bu gibi görünen bir xml gibi bir şey başarmak için çalışıyorum:

<?xml version="1.0" encoding="utf-8"?>
<CallRequest>
<ProjectName>Test</ProjectName>
<ContactNumberToDial>07843088348</ContactNumberToDial>
<DateTimeToDial></DateTimeToDial>
<ListSource>WebLead</ListSource>
<AgentName></AgentName>
<AddToList>False</AddToList>
<SpecificAgent>False</SpecificAgent>
<DBField>
    <FieldName>Name</FieldName>
    <FieldValue>Testing</FieldValue>
</DBField>
</CallRequest>

Herkes burada ne bir fikir var mı?

Teşekkürler,

James

3 Cevap

PHP kullanarak XML oluşturmak için olanak ben geçmişte kullanılan bir XML kütüphanesi XmlWriter. Bu kütüphane aslında PHP4 ile çalışmak için yazılmıştır. Göreceksiniz ki bu ile adını çatışmalar yerleşik bir PHP5 sınıfının başka bir şey için sınıf bildirimi ve kurucu hem de değiştirmeniz gerekir bu yüzden.

Umarım ki olur!

Ben jkndrkn katılıyorum - bu cURL doğru gibi görünüyor, bu test.php gelen çıkışı meselesi. IBM okuma / PHP ile XML ayrıştırma yazılı / check it out here ile ilgili harika bir yazı vardır.

Merhaba geri almak bir süre için üzgünüm. Birkaç şekilde bu anlamaya çalışıyorum. Ne söylendi istemci verilen URL'ye bir xml dizesi göndermek istiyor olmasıdır. Örnek sayfalar bakarken, onlar sonra ne olabilir 3 örnekler var. Istek ve yanıt, SOAP 1.2 isteği ve yanıtı, bir HTTP GET isteği ve yanıtı örnek ve bir HTTP POST isteği ve yanıtı örnek ile örnek gösterilecek SOAP 1.1 ile bir örnek vardır.

Ben çalışmak için kolay olacak ve ben PHP curl kullanıyorum hissediyorum ki ikincisi için seçtiniz.

HTTP POST örnek şudur:

İstek:

POST /ClickToCall/CallRequest.asmx/Call HTTP/1.1
Host: 194.217.1.2
Content-Type: application/x-www-form-urlencoded
Content-Length: length

xmlString=string

Yanıt:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">string</string>

Ben url test sayfasında xmlString manuel girdiğinizde, ben gerekli yanıtları almak.

XmlString bu gibi görünüyor:

<?xml version="1.0" encoding="utf-8"?><CallRequest><ProjectName>Noble Test</ProjectName><ContactNumberToDial>07843088348</ContactNumberToDial><DateTimeToDial>2009-12-10 18:30:53</DateTimeToDial><ListSource>WebLead</ListSource><AgentName></AgentName><AddToList>False</AddToList><SpecificAgent>False</SpecificAgent><DBField><FieldName>Name</FieldName><FieldValue>NobleTesting</FieldValue></DBField></CallRequest>

Ben ancak benim kodu kullandığınızda, ben hiç cevap alıyorum.

Bu ben kullanıyorum kodu:

<?php

if ($_POST['request_callback'])
{
$customer_name = cleaninput($_REQUEST['customer_name'],"text");
$debtor_id = cleaninput($_REQUEST['debtor_id'],"number");
$telephone_number = cleaninput($_REQUEST['customer_number'],"number");

if ($_POST['callme_now'] == '1') {
    $callback_time = date('y-m-d ' . $_POST['hour_select'] . ':' .    $_POST['minute_select'] . ':s');
} else {
    $callback_time = date('y-m-d H:i:s');
}

// XML data as string 
$request = '<?xml version="1.0" encoding="utf-8"?>'; 
$request .= '<CallRequest>'; 
$request .= '<ProjectName>Nobel Test</ProjectName>'; 
$request .= '<ContactNumberToDial>' . $telephone_number . '</ContactNumberToDial>'; 
if (isset($_POST['callme_now'])) {
$request .= '<DateTimeToDial></DateTimeToDial>';
} else {
$request .= '<DateTimeToDial>' . date('Y-m-d ' . $_POST['hour_select'] . ':' .     $_POST['minute_select'] . ':s') . '</DateTimeToDial>';
}
$request .= '<ListSource>WebLead</ListSource>'; 
$request .= '<AgentName></AgentName>'; 
$request .= '<AddToList>False</AddToList>'; 
$request .= '<SpecificAgent>False</SpecificAgent>'; 
$request .= '<DBField>';
$request .= '<FieldName>Customer Name</FieldName>';
$request .= '<FieldValue>' . $customer_name . '</FieldValue>';
$request .= '</DBField>';
$request .= '</CallRequest>';

// Create Headers 
$header[] = "Host: www.myjoomla.eo"; 
$header[] = "Content-type: application/x-www-form-urlencoded"; 
$header[] = "Content-length: ". strlen($request) . "\r\n"; 

$header[] = $request;

$loginUsername = "username";
$loginPassword = "password"; 

// Send using CURL 
$ch = curl_init(); 
curl_setopt( $ch, CURLOPT_URL, "http://194.217.1.2/ClickToCall/CallRequest.asmx/Call"); // URL to post

curl_setopt( $ch, CURLOPT_USERPWD, "$loginUsername:$loginPassword"); //login curl_setopt( $ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); // return into a variable curl_setopt( $ch, CURLOPT_POST, 1); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ header);

$result = curl_exec( $ch ); // runs the post curl_close($ch);

echo "Reply Yanıt: " . $result; // echo reply response echo "

 "; echo "

";
   print_r($header);
   echo "
";

// return $result; }

Herkes yukarıdaki kodu ile herhangi bir şey görüyor mu? Teşekkürler