php - 重复的 URL 发布参数问题
问题描述
嗨,谁能帮助为什么 URL 字符串参数一次又一次地发布?
HTTP://127.0.0.1/ab/1936.html?cart=yes?cart=yes
当我们在磁电机 1.9 中将产品添加到购物车时,我使用此参数打开迷你购物车
请帮助我如何保护这个?我正在使用此代码-
<?php
if ($_GET['cart']=='yes') {
echo "<script type='text/javascript'>
jQuery('.minicart_open').show();
</script>";
}
?>
购物车控制器.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;
}
解决方案
我得到了答案
只需替换以下行
$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;
它为我工作......希望它对你有帮助......
推荐阅读
- c# - 如何限制从 C# 程序执行的并行进程数?
- ios - Swift JSONDecoder - 编码键不使用下划线
- bing-api - Bing API:如何获取请求的报告列的数据类型?
- laravel - Displaying time in minutes/hours/days using Carbon or any other tools
- com - 有人可以向我展示在 C++ 应用程序中使用简单类型库的完整示例吗?
- c# - How to generate empty or blank videolayer to .mp4 which is encoded from .mp3 (or other audio-only) files using Azure Media Services v3?
- java - C++ Socket与Java客户端的连接
- c# - List 中每平方范围 int 的元素总和
- port - 如何使用pyserial获取蓝牙端口方向?
- json - 使用 Docker 环境变量时如何在 Wget HTTP PUT 中使用外部 JSON 文件?