Pergunta

Configuração:Verniz + Pagecache módulo, Redirecionar todas as páginas para a www.no htaccess

Problema:Sempre que alguém bate sem www página de um PAGECACHE_FORMKEY cookie é armazenado.Em seguida, eles redirecionado para www.e outra PAGECACHE_FORMKEY cookie é armazenado, mas com um valor diferente.

enter image description here

Meu código tem o formkey:

<form action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>" method="post">
    <?php echo $this->getBlockHtml('formkey'); ?>

Tentei com:

    <form action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>" method="post">
<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>"/>

Ainda não trabalho, como Mage::getSingleton('core/session')->getFormKey() saídas a segunda formkey.Se eu excluir o primeiro PAGECACHE_FORMKEY, então ele vai funcionar.

Como posso ignorar formkey de verificação checkout/cart/updatePost?

(Isso não tem nada a ver com o meu tema, o que acontece com o tema padrão muito, então eu acho que é um problema com a conexão que PageCache módulo estabelece entre verniz e o magento aplicação.)

Foi útil?

Solução

A solução foi para desativar formkey validação no checkout_cart_updatePost do evento.

function disableCsrf($observer)
{
    $events = array(   
        'checkout_cart_updatePost',
    );
    $route = $observer->getEvent()->getControllerAction()->getFullActionName();

    if (in_array($route, $events)) {
        $key = Mage::getSingleton('core/session')->getFormKey();
        Mage::app()->getRequest()->setParam('form_key', $key);
    }
}

Mesmo que em SupportDesk_CartFormKey módulo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top