Повторная проблема с параметрами публикации URL - PullRequest
1 голос
/ 29 апреля 2019

Привет, кто-нибудь может помочь, почему параметры строки URL публикуются снова и снова?

HTTP://127.0.0.1/ab/1936.html?cart=yes?cart=yes

Я использую этот параметр, чтобы открыть мини-корзину, когда мы добавили товар в корзину в magneto 1.9

Пожалуйста, помогитемне как это защитить?я использую этот код -

<?php
if ($_GET['cart']=='yes') {
    echo "<script type='text/javascript'>
          jQuery('.minicart_open').show();
    </script>";
}
?>

cartController.php

protected function _goBack()
{
    $returnUrl = $this->getRequest()->getParam('return_url');
   // print_r($returnUrl);exit;
    if ($returnUrl) {

        if (!$this->_isUrlInternal($returnUrl)) {
            throw new Mage_Exception('External urls redirect to "' . $returnUrl . '" denied!');
        }

        $this->_getSession()->getMessages(true);
        $this->getResponse()->setRedirect($returnUrl);
    } elseif (!Mage::getStoreConfig('checkout/cart/redirect_to_cart')
        && !$this->getRequest()->getParam('in_cart')
        && $backUrl = $this->_getRefererUrl()
    ) {
        $this->getResponse()->setRedirect($backUrl.'?cart=yes');
    } else {
        if (
            (strtolower($this->getRequest()->getActionName()) == 'add')
            && !$this->getRequest()->getParam('in_cart')
        ) {
            $this->_getSession()->setContinueShoppingUrl($this->_getRefererUrl());
        }
        $this->_redirect('checkout/cart');
    }
    return $this;
}

1 Ответ

0 голосов
/ 30 апреля 2019

я получил ответ

Просто замените строку ниже

$this->getResponse()->setRedirect($backUrl.'?cart=yes');

К

$url = $backUrl; 
        // Search substring  
            if (strpos($url, $key) == false) { 
                 $this->getResponse()->setRedirect($backUrl.'?cart=yes');
            } 
            else { 
                 $this->getResponse()->setRedirect($backUrl);
            } 
            //exit;

это работает для меня ... Надеюсь, это полезно для вас ...

...