Сессия в PHP, повторное добавление товара в корзину при обновлении сайта
У меня есть следующая функция в PHP, которая добавляет товар в корзину каждый раз, когда пользователь нажимает Добавить в корзину.
Проблема заключается в том, что, если кто-то перезагрузит страницу вручную после добавления товара в корзину, будет добавлен новый товар.
Любые советы, чтобы избежать этого?
function addtocart($pid,$q)
{
if($pid<1 or $q<1) return;
if(is_array($_SESSION['cart']))
{
$max=count($_SESSION['cart']);
$_SESSION['cart'][$max]['itemId']=$pid;
$_SESSION['cart'][$max]['qty']=$q;
$max=count($_SESSION['cart']);
}
else
{
$_SESSION['cart']=array();
$_SESSION['cart'][0]['itemId']=$pid;
$_SESSION['cart'][0]['qty']=$q;
$max=count($_SESSION['cart']);
}
}
Вот как я называю функцию:
Пользователь нажимает на добавить в корзину:
<input type="button" value="<?php echo $lang['ADDTOCART']; ?>" class="addToCart" onclick="addtocart(<?php echo $itemId; ?>)" />
Javascript выполнен:
<script language="javascript">
function addtocart(pid){
document.cartAdding.itemId.value=pid;
document.cartAdding.command.value='add';
document.cartAdding.submit();
}
</script>
Страница перезагружается и заходит сюда:
if(isset($_REQUEST['command']) && $_REQUEST['command']=='add' && $_REQUEST['itemId']>0)
{
$pid=$_REQUEST['itemId'];
addtocart($pid,1);
}
Спасибо
1 ответ
Вы можете поместить оператор if, чтобы проверить, был ли элемент уже добавлен. На моей голове что-то вроде:
if (array_key_exists($pid, $_SESSION['cart']['itemId'])){ // check to see if product has already been added
// put code statments here
}