は私が電子メールフィールドの名前は「NE」にする必要があるcURLのPHPを通過していないポストが、ReturnTransferは
をmyurl.com/?na=sするために、フォームの電子メールデータを送信する必要がニュースレタープラグインを持って取り組んでいます
ニュースレタープラグインにサブスクライバデータを送信するためにcURLを使用しようとしています。これは私が今使っているコードです:
$address = $_POST['emailer'];
$curlvars = [
'na' => 's',
'ne' => $address
];
$ch = curl_init('http://www.myurl.com/');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlvars);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$curl_error = curl_error($ch);
curl_exec($ch);
curl_close($ch);
このコードは、すべて私がAJAX経由にデータを送信send.phpと呼ばれるPHPファイル内にあります。 send.phpファイルは、購読者に電子メールを送信し、購読者の電子メールをニュースレタープラグインに送信します。
私はCURLOPT_RETURNTRANSFERの出力を見ることができるように、その電子メールに$ resultを追加しました。
フォームフィールドに自分のメールアドレス(テスト用)を入力して送信をクリックすると、電子メールが届き、その下に「購読」ボタン(RETURNTRANSFERの出力)が表示されます。
点検要素でボタンのデータをサブスクライブです:
<form method="post" action="http://www.myURL.com/" id="m_-3594728259508176106form" target="_blank" onsubmit="try {return window.confirm("You are submitting information to an external page.\nAre you sure?");} catch (e) {return false;}">
<input type="hidden" name="q" value="/10442-2/"><input type="hidden" name="na" value="s"><input type="hidden" name="ne" value="[email protected]">
<input type="hidden" name="ts" value="1475753672">
<input type="submit" value="Subscribe">
</form>
私はそれをクリックすると、それは私のニュースレターのプラグインに成功した電子メールを送信します。
基本的に、cURL ReturnTransferの出力ではすべてが正しく表示されていますが、実際にはサイトから送信したときに自分のサイトにデータをPOSTしていません。私が受け取った電子メールの中に生成された送信ボタンを押したときだけ。
私は間違っていますか?
ありがとうございます!
彼は 'http_build_query()'も使用できます。 – vaso123
どこでjsonデータをデコードする必要がありますか?私はjsonにあまり馴染んでいない。 http_build_queryの場合、私はポストフィールドを次のように変更しようとしました:curl_setopt($ ch、CURLOPT_POSTFIELDS、http_build_query($ curlvars));それは動作しませんでした。同じ結果 – Ram
あなたのサーバ側の@Ramあなたの例であるcurl要求を処理するサーバhttp://www.myurl.com/ – anuraj