Magento CE 1.7获取联系人表单中包含的用户ip
我的Magento CE 1.7网站联系人表单中有一个被垃圾邮件农场发送垃圾邮件,因此绕过了在此类表单上实现的Google reCaptcha。每天收到300封成功验证验证码的垃圾邮件的比率高得离谱 由于使用了联系人表单,电子邮件中没有发送发件人ip地址,因此我需要有关如何获取用户ip的帮助和指导,并将其包含在我收到的垃圾邮件联系人电子邮件中。 其想法是禁止用于垃圾邮件的IP 获取用户IP的php调用Magento CE 1.7获取联系人表单中包含的用户ip,ip,magento-1.7,spam-prevention,Ip,Magento 1.7,Spam Prevention,我的Magento CE 1.7网站联系人表单中有一个被垃圾邮件农场发送垃圾邮件,因此绕过了在此类表单上实现的Google reCaptcha。每天收到300封成功验证验证码的垃圾邮件的比率高得离谱 由于使用了联系人表单,电子邮件中没有发送发件人ip地址,因此我需要有关如何获取用户ip的帮助和指导,并将其包含在我收到的垃圾邮件联系人电子邮件中。 其想法是禁止用于垃圾邮件的IP 获取用户IP的php调用 echo Mage::helper('core/http')->getRemoteAdd
echo Mage::helper('core/http')->getRemoteAddr(true);
我如何在联系人表单中使用此信息,并将IP与联系人表单一起提交
我感谢所有的帮助
致以最良好的问候
Fab您可以简单地覆盖contacts控制器:
Mage_Contacts_IndexController
只需修改post操作:
public function postAction()
{
$post = $this->getRequest()->getPost();
if ( $post ) {
$translate = Mage::getSingleton('core/translate');
/* @var $translate Mage_Core_Model_Translate */
$translate->setTranslateInline(false);
try {
$postObject = new Varien_Object();
$postObject->setData($post);
// Add the IP..
$postObject->setData(
'ip',
$_SERVER['REMOTE_ADDR']
//Mage::helper('core/http')->getRemoteAddr(true)
);
// .. rest un changed..
现在,您需要更新电子邮件模板:
转到系统→ Magento管理部分中的事务性电子邮件
2) “添加新模板”
3) 从“模板”下拉框中选择“联系人表单”,单击“加载模板”
现在修改模板以添加到新字段中:
Name: {{var data.name}}
E-mail: {{var data.email}}
Telephone: {{var data.telephone}}
Comment: {{var data.comment}}
IP Address: {{var data.ip}}
转到系统→ 配置→ 接触
在“电子邮件模板”下拉框中选择您的新邮件 安德鲁
非常感谢
通过此代码调整显示正确的IP:
public function postAction()
{
$post = $this->getRequest()->getPost();
if ( $post ) {
$translate = Mage::getSingleton('core/translate');
/* @var $translate Mage_Core_Model_Translate */
$translate->setTranslateInline(false);
try {
$postObject = new Varien_Object();
$postObject->setData($post);
// Add the IP..
$postObject->setData(
'ip',
$_SERVER['REMOTE_ADDR']
);
再次非常感谢大家的帮助和指导。交付的IP不正确,例如1887152281。我认为它应该使用“$”服务器['REMOTE\u ADDR']”而不是“getRemoteAddr”。请帮助我,我只是使用了你的代码样本,老实说,我没有检查:)所以这一切都归结为中国的垃圾邮件农场。这有助于我们通过拒绝ip范围112.123.168阻止攻击*