У меня есть корзина покупок на моем веб-сайте, которая использует строку для списка покупок. Каждый продукт имеет трехзначный идентификатор, поэтому строка выглядит примерно как 031181083 с 3 элементами.
В php,
session_start();
$numbooks = strlen($_SESSION['bookstrings'])/3;
$books = $_SESSION['cart'];
echo "You have " . $numbooks . " books in your Cart.";
echo $_SESSION['bookstrings'];
echo "<br><br>";
include '/redirect.php';
где $ _SESSION ['cart'] - строка, которая обновляется, когда пользователь добавляет товар в корзину.
Я использую цикл for с
${"book$x"} = str_replace("011", "55USD New Traditions and Encounters ", ${"book$x"});
для отображения информации о книге вместо цифр для пользователя. Однако у меня возникают проблемы с удалением части строки, когда пользователь отменяет элемент.
Пользователь нажимает
echo '<a href="redirect.php?cancel=' . $x . '">Cancel</a>';
и redirect.php выглядит так:
<?php
echo "aaa";
include 'mycart.php';
$x = $_GET['cancel'];
$booksnow = str_replace(${"bookid$x"}, "", $books);
$_SESSION['bookstrings'] = $booksnow;
echo $_SESSION['bookstrings'];
header("Location: mycart.php");
?>
Когда я захожу в redirect.php, $ _SESSION ['bookstrings'] успешно обновляется, но когда я перенаправляю обратно в mycart.php, переменная сбрасывается.
Я не против переписать много вещей, так есть ли лучший способ кодировать корзину? Использование строки было первым, что пришло мне в голову, поэтому было построено поверх него, но я чувствую, что это очень неэффективно, и я хотел бы использовать более простой способ с функциональностью.
PS: при открытии страницы часть php не отображается, а когда я обновляюсь, она становится нормальной. Есть идеи?