Magento - 将隐藏字段添加到联系表单

时间:2012-04-06 18:56:16

标签: magento

我的Magento商店的联系表格偶尔会收到垃圾邮件。我不愿意添加Captcha,所以我想尝试在表单中添加一个隐藏字段。如果该字段被填写,则表单将不会被提交(大多数机器人会自动完成所有字段)。

我知道如何添加字段,但有人知道如果字段有值,如何/在何处添加代码以拒绝表单?

谢谢!

4 个答案:

答案 0 :(得分:2)

首先,您需要知道联系人表单请求的控制器操作。如果您还不知道,请查看action的{​​{1}}参数,或使用Fiddler,或使用某些浏览器专用工具(如Firebug等)查找。

接下来,override您自己找到的控制器操作。

最后,在你的重写动作中,输入

<form>

赶上。

答案 1 :(得分:1)

我不确定你到底想要什么,但也许这会有所帮助。

标准控制器为Mage_Contacts_IndexController,位于此处: app / code / core / Mage / Contacts / controllers / IndexController.php

当然,您要么将其复制到local目录,要么使用您自己的自定义模块扩展该类。您可以尝试使用此文件的副本。我希望这会有所帮助。

答案 2 :(得分:1)

我对搜索人员的微小贡献 - 这种防御被称为蜜罐。你去吧。

在Magento 1.3.2中,我在code/local/Mage/Contacts/controllers/IndexController.php的控制器副本的第75行添加了此内容:

// check the spam honeypot
if (!empty($post['yummy'])) {
    $error = true;
}

'yummy'是我在template/contacts/form.phtml中添加的隐藏字段。

答案 3 :(得分:0)

我认为您可以在主块中创建表单时放置隐藏字段,如下所示:

$fieldset->addField('entity_type_id', 'hidden', array(
      'name'               => 'entity_type_id',
      'value'              => 11
));

然后你可以在saveAction()中检查它以检查是否设置了这些值