-3

サイトのフォームからCRMに情報を送信しようとしていますが、変数をXMLに挿入するのに行き詰まっています。これが私のコードの簡略版です。XML変数内の$email変数を挿入しようとしているところに注意してください...これは機能していません。

<?php

$email = $_GET["email"];


$xml = '<xmlrequest>
<details>
    <emailaddress>$email</emailaddress>
    <mailinglist>8</mailinglist>
    <format>html</format>
    <confirmed>no</confirmed>
</details>
</xmlrequest>
';

 $ch = curl_init('http://mysite.com/xml.php');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
 $result = @curl_exec($ch);
 if ($result === false) {
echo "Error performing request";
 } else {
$xml_doc = simplexml_load_string($result);
header( "Location: http://mysite.com/confirmation?email=$email" ) ;

//echo 'Status is ', $xml_doc -> status, '<br/>';
 if ($xml_doc -> status == 'SUCCESS') {
    echo 'Data is ', $xml_doc -> data, '<br/>';

} else {
    echo 'Error is ', $xml_doc -> errormessage, '<br/>';
}
}

?>

APIのメールアドレス値を入力するだけで問題なく動作します。ただし、これをPHP変数から動的に取り込む方法がわかりません。どんな助けでも大歓迎です!

4

1 に答える 1

1

文字列定義はこれを使用するのが悪いです

$xml = "<xmlrequest>
<details>
    <emailaddress>{$email}</emailaddress>
    <mailinglist>8</mailinglist>
    <format>html</format>
    <confirmed>no</confirmed>
</details>
</xmlrequest>";

またはこれ

$xml = '<xmlrequest>
<details>
    <emailaddress>' . $email . '</emailaddress>
    <mailinglist>8</mailinglist>
    <format>html</format>
    <confirmed>no</confirmed>
</details>
</xmlrequest>';

<![CDATA[]]>この変数はおそらくさまざまな文字列になる可能性があるため、メールの周りのセクションを使用する方がよいと思います。

于 2012-06-26T23:47:41.873 に答える