我的网站上有一个购物车,它使用了一个字符串作为购物清单。每个产品都有一个3位数字,所以字符串看起来像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 [&#39; cart&#39;]是用户将产品添加到购物车时更新的字符串。
我使用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 [&#39; bookstrings&#39;]已成功更新,但当我重定向回mycart.php时,变量会重置。
我不介意重写很多东西,那么有更好的方法来编码购物车吗?使用字符串是第一个出现在我脑海中的东西,所以我觉得它非常低效,我希望能用更简单的方法来实现功能。
PS:当页面打开时,php部分没有显示,当我刷新时,它变得正常。有什么想法吗?