0

最近cURL、カスタム Magento コントローラーから同じ Web サイトのカスタム ページにデータをポストするために使用しています。

ただし、私のやり方では、Magento のログ データが壊れてしまいます。そこで、別の方法を試しました。Magento にはcURL機能が組み込まれています ( Varien_Http_Adapter_Curl)。

これを介して投稿しようとしましたが、これまでのところ頭の中で過ぎており、Web 上のドキュメントはかなりまばらです。これについて助けが必要です。$_POST準備ができたすべてのデータを含む文字列を取得しました。誰か送信方法教えてください。

これ:

$url="<URL>";
$curl = new Varien_Http_Adapter_Curl;
$curl->setConfig(array('timeout' => 15));
$curl->write(Zend_Http_Client::POST,$url, '1.1', array(), $poststring);
$result = $curl->read();
$curl->close();

...データを送信していません。

編集:

Magento 以外の cURL を試しましたが、セッション データについて知りませんでした。セッションデータの送信方法もまだわかりません。さて、セッション変数を試してみたのですが、結果は1ページでデータを設定・抽出できるのですが、ページを切り替えるとデータが失われてしまいます。したがって、これは現在、コントローラーとビューの間で使用できません。

4

2 に答える 2

0

Magentoセッションをより適切に使用できます

http://magento-rohan.blogspot.in/2012/03/magento-get-set-unset-session.html

これがその使い方です

于 2012-10-26T07:21:59.843 に答える
0

何を達成しようとしているのかについて、より多くの情報を提供する必要があります。基本的に、POST リクエストの送信先を教えていただく必要があります。おそらく、別の Magento インスタンスまたは同じ Magento Web サイトでしょうか? ユーザーが現在行っているのと同じセッションを持つことを期待していますか? 詳細をお知らせいただければ、回答を編集します。今のところ、あなたが与えた情報に基づいて、何があなたを悩ませているかを推測しようとします.

サーバー側からcurlを使用してPOSTリクエストを送信する場合、ユーザーは、投稿リクエストを送信しようとしている「ページ」とやり取りしていないことを意味します。

ユーザーがそれと対話していない場合、それはユーザー セッション情報を送信していないことを意味します。

基本的には次のようになります。

通常は

Eric ->(セッション情報を含むリクエスト)-> サーバー (Eric です。これがあなたへの応答です)

あなたは何をしようとしているのですか

Eric -> (セッション情報を含むリクエスト) -> サーバー -> (セッション情報なしのリクエスト) -> サーバー (このサーバーは Eric について知りません)

したがって、これを正しく実装するには、問題が何であるかを推測するのが得意であれば、リクエストとともにセッション情報を 2 番目のサーバーに渡すだけです。

問題の理解に向けて順調に進んでいるとのことでしたら、さらに情報を追加します。

- -アップデート - -

あなたは自分の状況をうまく説明しませんでした。私がこれを言っているのは、cURL を使用したアプローチ全体が最初から悪い決定である可能性があるためです。たとえば、同じ Magento コードベースでコードを実行しようとしていて、そのコードが一部のコントローラー内に閉じ込められている場合、おそらくコードをリファクタリングし、そのロジックを一部のモデル内にカプセル化して直接実行できます。

しかし、プレーンな php で curl を介してセッション情報を渡す例を次に示します。

$strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/';
curl_setopt( $curl, CURLOPT_COOKIE, $strCookie );

Cookie は、Magento ではおそらく「フロントエンド」と呼ばれる必要があります。そして、 Varien_Http_Adapter_Curl を確認しました CURLOPT_COOKIE オプションを設定する方法がないため、単純なカール設定を使用することをお勧めします。また、アダプターを拡張してそのオプションを自分で追加するオプションもあります。「_applyConfig」メソッドをオーバーライドするだけです。

于 2012-10-26T08:00:35.070 に答える