php - 使用 magento 安全 url 进行操作时,表单提交不起作用

标签 php magento

我在提交时运行了一些 php 将数据导出到 csv。 php 看起来像:

$out = '';
if (isset($_POST['csv_hdr'])) {
$out .= $_POST['csv_hdr'];
$out .= "\n";
}

if (isset($_POST['csv_text'])) {
$out .= $_POST['csv_text'];
}

$filename = "z_".date("Y-n-d",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-n-d") . ".csv");
header("Content-disposition: filename=".$filename.".csv");
print $out;
exit;

如果我对 php 文件执行正常路径,则效果很好:

<form name="export"  action="http://website.com/getcsv.php"  method="post"> 

我现在正在尝试将此 php 函数移至 Controller 中并以这种方式调用它。我正在开发 magento 管理模块,因此我必须使用安全 key 传递 url。因此,我将该函数移至 Controller 中的一个操作中:

public function getcsvAction(){
    $out = '';
    ...
}

然后我就可以通过以下方式获取网址:

<?php echo Mage::helper("adminhtml")->getUrl("module/index/getcsv/");?>

这给了我一个带有 key 的链接,例如:

http://website.com/module/index/getcsv/key/7431c859914c40d3f66dfcd1530813b3/

如果我将该链接粘贴到浏览器中,它将正常执行 php。但是,当我在表单操作中替换它时,它不再起作用,只是重定向到仪表板。我看不到任何错误输出,我不确定发生了什么。关于如何使用安全路径作为操作让此 POST 工作有什么想法吗?

最佳答案

感谢 this post 我找到了它.

我需要将其添加到表单中:

<input type="hidden" name="form_key" value="<? echo $this->getFormKey(); ?>" /> 

关于php - 使用 magento 安全 url 进行操作时,表单提交不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9603475/

相关文章:

mysql - 在循环中使用 php mail() 函数发送 +-200 封电子邮件

php - 为 php/mysql CMS 预处理和后处理多语言用户输入的最佳方法

magento - 选择 Magento 中的 Authorize.net 付款时不显示信用卡表单

magento - 为 Magento 的某一页面设置面包屑?

xml - 使用之前/之后放置 block 的 Magento XML 几乎不起作用

php - 有没有办法在 jQuery 中永久定义一个函数?

javascript - jScroll.js 与 Laravel 5 : nextSelector not found - destroying

javascript - console.log 在我的输入字段中给出 undefined

sql - Magento:获取按属性过滤的产品集合的订单项集合

magento - 如何按产品编号获取类别列表?