3

次の状況を想像してみましょう。

ユーザーが次のデータを入力できるようにする html フォームを含む単純な php ページがあります。

  • 電話番号
  • メール

そのような:

<form action="xml-file.xml" method="get">
   <input type="text" id="to" name="to" value="" />
   <input type="text" id="text" name="text" value="" />
   <input type="submit" />
</form>

ここで、私がテストして問題なく動作するこのメソッドを使用して XML を作成し、その後、この別のメソッド (CURL)を使用して URL 経由で送信したいと考えています。

残念ながら、submit アクションをリンクして XML を作成し、それを URL に送信してローカル サーバー (www.example.xxx:1234) に送信し、その後処理することができないため、CURL メソッドに到達できません。 SMS を送信するためのその XML。

XML の形式が正しい場合、そのサーバーは応答を送信します。したがって、私の問題は、作成された XML の送信にあります。

ヘルプ?

更新 1 : 更新されたコードを追加します。これにより、(sms.xml ファイルに chmod 777 を使用して) xml ファイルを自由に編集できます。

index.php

<html>
...
<form action="send.php" method="get">
   <input type="text" id="to" name="to" value="" />
   <input type="text" id="text" name="text" value="" />
   <input type="submit">
</form>
...
</html>

send.php

<?php
  $xml = simplexml_load_file("sms.xml");          // Load XML file
  $xml->Title3 = $_GET['to'];                         // Updating <Title3> from GET method
  $xml->Title5[0]->Title51Content = $_GET['text'];      // Updating <Title51> from GET method
  $xml->asXML('sms.xml');                         // Saving the XML file
?>

sms.xml

<?xml version="1.0" encoding="UTF-8"?>
<Title1>
   <Title2>Some Text</Title2>
   <Title3>Variable 1</Title3>
   <Title4>Some Text</Title4>
   <Title5>
      <Title51>Variable 2</Title51>
   </Title5>
</Title1>

補足: XML には、送信時に、次の"Content-Type","application/x-www-form-urlencoded"ようなものを返すためのヘッダーが必要です。

XML=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%0A%3...

ありがとう!

4

1 に答える 1

1

XML を文字列として返し、投稿しますか?

...
$xml_post_string = 'XML='.urlencode($xml->asXML());  

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'http://theurl.com');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);
curl_close($ch);
...
于 2012-09-03T09:59:17.697 に答える