php-Magento客户注册“蜜罐”验证码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-Magento客户注册“蜜罐”验证码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2144字,纯文字阅读大概需要4分钟。
内容图文
我以为我已经分类过了,但是遇到了麻烦.我想在客户注册表单上添加一个“蜜罐”,对于那些不熟悉此技术的人,需要使用CSS隐藏文本输入,并假设一般的bot都希望填写该文本.但是,人类不会看到该字段,因此需要验证为空.
在Magento中,我创建了一个新模块,将以下内容添加到config.xml中:
<global>
<fieldsets>
<customer_account>
<honeytrap><create>1</create><update>1</update></honeytrap>
</customer_account>
</fieldsets>
<models>
<customer>
<rewrite>
<customer>MyStore_Honeytrap_Model_Customer</customer>
</rewrite>
</customer>
</models>
</global>
然后,我向validate函数添加了一些额外内容,以检查该字段是否为空.据我所知,这一切都正确,但是在AccountController.php中的第278行处,extractData()丢弃了请求中的发布数据中的输入字段.我对Magento还是很陌生,因此也希望在这里学习一些东西,但是如何防止extractData()将字段从帖子中剥离出来?
猜猜我只是想知道我所缺少的,我已经在互联网上阅读了一些有关添加自定义字段的帖子,据我所知,这应该是可行的,但也许我错过了一些东西,因为我没有包括Entity设置,因为我不需要将此字段保存在数据库中,这纯粹是为了验证注册是否来自人类(尽可能多).
感谢您的帮助,我敢肯定我可能错过了一些荒谬的事情.
编辑:感谢@ gordon-knoppe指针使用事件:
public function check_trap(Varien_Event_Observer $observer)
{
$event = $observer->getEvent();
$post = $event->getControllerAction()->getRequest()->getPost();
// Check Honeytrap is empty
if (Zend_Validate::is( trim($post['fname']) , 'NotEmpty'))
{
$customerHelper = Mage::helper('customer');
$error = $customerHelper->__('A problem has occured with your registration.');
Mage::getModel('customer/session')->addError($error);
Mage::app()->getResponse()
->setRedirect(Mage::getUrl('customer/account', array('_secure' => true)))
->sendResponse();
exit;
}
}
在config.xml中:
<events>
<controller_action_predispatch_customer_account_createpost>
<observers>
<mystore_honeytrap_observer>
<type>singleton</type>
<class>Mystore_Honeytrap_Model_Observer</class>
<method>check_trap</method>
</mystore_honeytrap_observer>
</observers>
</controller_action_predispatch_customer_account_createpost>
</events>
解决方法:
解决此问题的更独立的方法可能是在相关的控制器操作(controller_action_predispatch_ *)之前注册观察者,以检测您的表单字段是否已填充,如果是,则将其重定向出去,以防止本机操作处理请求.
内容总结
以上是互联网集市为您收集整理的php-Magento客户注册“蜜罐”验证码全部内容,希望文章能够帮你解决php-Magento客户注册“蜜罐”验证码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。