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

Magento-将隐藏字段添加到联系人表单,magento,Magento,在我的Magento商店里,我偶尔会收到来自联系人表单的垃圾邮件。我不愿意添加验证码,所以我想尝试在表单中添加一个隐藏字段。如果填写了字段,则不会提交表单(大多数机器人会自动完成所有字段) 我知道如何添加字段,但是如果字段有值,是否有人知道如何/在何处添加代码以拒绝表单 谢谢 我不确定你到底想干什么,但也许这会有所帮助 标准控制器是Mage\u Contacts\u IndexController,它位于以下位置:app/code/core/Mage/Contacts/controllers/I

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

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


谢谢

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

标准控制器是
Mage\u Contacts\u IndexController
,它位于以下位置:app/code/core/Mage/Contacts/controllers/IndexController.php


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

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

标准控制器是
Mage\u Contacts\u IndexController
,它位于以下位置:app/code/core/Mage/Contacts/controllers/IndexController.php


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

首先,您需要了解联系人表单请求的控制器操作。如果您还不知道,请检查您的
操作
参数,或使用或使用特定于浏览器的工具(如Firebug等)来查找

接下来,由您自己找到控制器操作

最后,在您的重写操作中,将

$sMyHiddenField = $this->getRequest()->getParam('my_hidden_field', '');
if ($sMyHiddenField) {
    $this->_forward('noRoute');    // or whatever
}

要捕获。

首先,您需要知道联系人表单请求的控制器操作。如果您还不知道,请检查您的
操作
参数,或使用或使用特定于浏览器的工具(如Firebug等)来查找

接下来,由您自己找到控制器操作

最后,在您的重写操作中,将

$sMyHiddenField = $this->getRequest()->getParam('my_hidden_field', '');
if ($sMyHiddenField) {
    $this->_forward('noRoute');    // or whatever
}

捕捉。

我对人们搜索的小小贡献——这种防御被称为蜜罐。好了

在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

中添加的隐藏字段,这是我对人们搜索的一个小小贡献-这种防御称为蜜罐。好了

在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

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

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

在此之后,您可以在saveAction()中检查这些值是否已设置

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

$fieldset->addField('entity_type_id', 'hidden', array(
      'name'               => 'entity_type_id',
      'value'              => 11
));
然后,您可以在saveAction()中检查它,以检查这些值是否已设置