【问题标题】:Magento post from controller来自控制器的 Magento 帖子
【发布时间】:2012-10-25 22:04:28
【问题描述】:

最近我一直在使用 cURL 将数据从自定义 Magento 控制器回传到同一网站上的自定义页面。

但是,我这样做的方式以某种方式破坏了 Magento 的登录数据。所以我尝试了另一种方法。 Magento 内置了 cURL 功能 (Varien_Http_Adapter_Curl)。

我试图通过这个发布,但到目前为止它已经超出了我的想象,并且网络上的文档相当稀疏。我需要这方面的帮助。我已经准备好一个包含所有$_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,但不知道会话数据。我仍然不知道如何发送会话数据。 现在,我尝试了会话变量,但结果是我可以在一页上设置和提取数据,但是在更改页面时数据会丢失。所以,目前不能在控制器和视图之间使用。

【问题讨论】:

  • 你想达到什么目的,因为他们有其他方法来完成它? 'custom page' 是在 magento 中还是在同一台服务器上?

标签: forms magento post controller


【解决方案1】:

你可以更好地使用magento会话

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

这是如何使用它

【讨论】:

    【解决方案2】:

    您需要向我们提供有关您想要达到的目标的更多信息。基本上你需要告诉我们你在哪里发送 POST 请求?也许是另一个 Magento 实例,甚至是同一个 Magento 网站?您是否希望用户拥有与现在相同的会话?一旦您向我们提供更多信息,我将编辑我的答案。现在,我将尝试根据您提供的输入来猜测是什么困扰着您。

    当您从服务器端使用 curl 提交 POST 请求时,这意味着用户不再与您尝试向其提交 post 请求的“页面”进行交互。

    如果用户没有与之交互,这意味着它没有发送用户会话信息。

    基本上是这样的:

    通常

    Eric ->(带有会话信息的请求)-> 服务器(哦,是你 Eric,这里是 专为您准备的回复)

    你想做什么

    Eric ->(带有会话信息的请求)-> 服务器 ->(没有会话的请求 info)-> 服务器(此服务器不知道 Eric)

    所以要正确实现这一点,如果我善于假设您的问题是什么,只需将会话信息与您的请求一起传递给第二台服务器。

    如果你告诉我我正在理解你的问题,我会添加更多信息。

    ---更新---

    你没有很好地解释你的情况。我告诉你这是因为你使用 cURL 的整个方法可能从一开始就是一个糟糕的决定。例如,如果您尝试在同一个 Magento 代码库中执行代码,并且该代码被困在某个控制器中,也许您可​​以重构您的代码并将该逻辑封装在某个模型中并直接执行它。

    但这里是在普通 php 中通过 curl 传递会话信息的示例:

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

    Cookie 在 Magento 中或许应该被称为“前端”。我检查了 Varien_Http_Adapter_Curl 它没有任何设置 CURLOPT_COOKIE 选项的方法,所以我建议你使用普通的 curl 设置。您还可以选择扩展适配器并自行添加该选项。只需覆盖“_applyConfig”方法。

    【讨论】:

    • 我目前的状态是我不知道如何将 Session 数据从控制器卷曲到 Magento 页面。我已经尝试过会话变量和 Varien 对象变量(getvar()、setvar())。所有这些都可以在控制器或网页中设置和使用,但在两者之间切换时数据会丢失。我已经尝试过 Magento curl,但无法让它发挥作用。这让我发疯了......
    • 我考虑过移动代码,但无论如何我都需要刷新页面,以便更新所有字段。如果我可以在页面之间的 Varien 对象/会话中存储和检索信息,我会更加努力地考虑移动代码。至于传递会话信息,我还没有找到一旦传递过来如何更新 Magento 的会话数据。
    猜你喜欢
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多