Я создал очень простую корзину покупок, которая просто добавляет элемент к ней и удаляет элементы из нее и пустую корзину теперь. Я знаю, что у меня много проблем в моем коде, но я пытаюсь исправить их, а такжеPHP удалить товар из корзины
первыми увидеть моего код
if (isset($_SESSION['cart'])) {
foreach ($_SESSION['cart'] as $c) {
echo $c['name'] . '<br />';
echo $c['price'] . '<br />';
echo '<a href="?pid=17&rc=' . $c['code'] . '">Remove item</a><br />';
}
}
if (isset($_POST['buy'])) {
//header("Location:?pid=18&pl=" . $pl);
if (isset($_POST['buy'])) {
$getData = $db->prepare('SELECT * FROM plans WHERE id=?');
$getData->bind_param('i', $pl);
if ($getData->execute()) {
$res = $getData->get_result();
if (($pn = $res->fetch_object()) !== null) {
$proCode = rand(1, 100);
$item['name'] = $pn->plan_name;
$item['price'] = $pn->price_dollar;
$item['code'] = $proCode;
$_SESSION['cart'][] = $item;
}
}
}
}
echo '<a href="?pid=17&ac=empty">Empty Cart</a>';
if (isset($_GET['rc']) && isset($_SESSION['cart'])) {
$rem = $_GET['rc'];
$ses = $_SESSION['cart'];
foreach ($_SESSION['cart'] as $cartItem) {
if ($cartItem["code"] == $rem) {
unset($ses[$rem]);
}
}
/*if (($key = array_search($rem, $ses)) !== false) {
unset($ses[$key]);
}*/
var_dump($ses);
}
if (isset($_GET['ac']) == 'empty' && isset($_SESSION['cart'])) {
unset($_SESSION['cart']);
}
сейчас добавление новых продуктов работают хорошо со мной, но проблема приходит, когда я пытаюсь удалить один элемент из каретки он вернуться назад и что, похоже, произошло, и предмет все еще присутствует в корзине
Трудно ответить этот вопрос, не видя, как ваша корзина работает в целом. Это может быть несколько разных проблем, но, не видя, как этот сценарий вызывается, трудно определить, что может быть неправильным. Мое подозрение заключается в том, что при удалении вы удаляете элемент из $ ses, но не $ _SESSION, поэтому, когда ваша корзина перезагружается, элемент все еще находится в сеансе. Не могу быть уверенным, хотя не видя весь модуль. – xJoshWalker