Что вы делаете со своим кодом, так это то, что если $_REQUEST
из action
равно значению duplicate
, то вы делаете следующие вещи:
- получить корзину из сеанса (который ранее был сохранен)
- клонируйте корзину и сохраните ее при температуре
- , а затем скопировать обратно темп в корзину
- и, наконец, сохранить корзину в сеансе
- Тогда, я полагаю, вы где-то показываете свою карту ...
То, что здесь происходит, заключается в том, что инструкции по клонированию должны быть действительными только при нажатии на дублирующуюся ссылку. Я предполагаю, что ваш PHP находится в том же файле, что и HTML, поэтому, когда вы открываете его в новом окне, корзина обновляется на 2 элемента и сохраняется в сеансе (что является общим для всех экземпляров вашей страницы), а также при перезагрузке вашей страницы те же 2 предмета извлекаются из сеанса и показываются вам. Также здесь вы должны заметить, что $_REQUEST['action']
все еще присутствует, поэтому он дублирует еще 1 элемент. Теперь, когда вы обновляете страницу, она будет дублировать еще 1 элемент.
В качестве решения этой проблемы попробуйте отменить действие с помощью функции unset()
после того, как вы клонировали корзину, так что php запускается только при необходимости.