मुझे पता है कि इस अस्पष्ट प्रश्न का उत्तर नहीं दिया जाना चाहिए। हालाँकि मैं यहाँ एक समान मुद्दे पर चल सकता हूँ, यही मैंने सीखा है:
- प्रत्येक अनुरोध में form_key अलग नहीं होना चाहिए
- form_key पूरे सत्र में सुसंगत है
- एक अलग सत्र को एक अलग form_key बनाना चाहिए (दूसरे ब्राउज़र को आज़माएं)
- पृष्ठ कैश कभी कभी इस के साथ हस्तक्षेप करता है
- मेरे साथ यह सभी सत्रों के लिए एक ही (कैश्ड) form_key दिखाने वाले विजेट के परिणामस्वरूप हुआ।
- मुझे यह "सुविधा" नहीं मिली
लघु उदाहरण के आधार पर मैंने इसलिए नए मॉड्यूल में इस तरह के addtocart चेकआउट कार्रवाई को ओवरराइड किया है:
एप्लिकेशन / कोड / स्थानीय / नाम / चेकआउट / नियंत्रक / CartController.php
<?php
require_once(Mage::getModuleDir('controllers','Mage_Checkout').DS.'CartController.php');
class Name_Checkout_CartController extends Mage_Checkout_CartController
{
public function addAction()
{
$request = $this->getRequest();
$formKey = Mage::getSingleton('core/session')->getFormKey();
$request->setParam('form_key', $formKey);
return parent::addAction();
}
}
एप्लिकेशन / कोड / स्थानीय / नाम / चेकआउट / etc / config.xml
<?xml version="1.0"?>
<config>
<modules>
<Name_Checkout>
<version>0.1.0</version>
</Name_Checkout>
</modules>
<frontend>
<routers>
<checkout>
<args>
<modules>
<name_checkout before="Mage_Checkout">Name_Checkout</name_checkout>
</modules>
</args>
</checkout>>
</routers>
</frontend>
</config>
एप्लिकेशन / etc / मॉड्यूल / Name_Checkout.xml
<?xml version="1.0"?>
<config>
<modules>
<Name_Checkout>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Checkout/>
</depends>
</Name_Checkout>
</modules>
</config>
मुझे आशा है कि यह सभी के लिए इसे फिर से बनाने के लिए बड़े पैमाने पर पर्याप्त होगा