我目前正在制作一个会话购物车,我可以在其中添加和删除每个产品下方的链接的产品。如果您更喜欢可视化,可以在此处查看:http://www.bgc-testomgeving.nl/sem
无论如何,不知何故,当我单击产品的链接时,除了 URL 更改之外,似乎什么都没有发生,但似乎没有添加到$_SESSION['cart']
。
这是每个产品下方的链接代码,用于将其添加到购物车:echo '<a href="action=add&id=' .$id. '">Voeg toe </a>';
$id
是:来自WordPress查询的$id = get_the_ID();
。但是,这部分有效,因为我认为<a>
的URL是正确的。
在这里,我检查是否已经有一个$_SESSION['cart']
处于活动状态,如果没有,我会制作一个。另外,我检查项目 ID 是否已经在cart
中,如果没有,我会执行array_push()
,如果是,我使用 unset。见下文:
<?php session_start();
require("dbconnect.php");
?>
<?php
if(!isset($_SESSION['cart'])) {
$cart = array();
$_SESSION['cart'] = $cart;
}
if(isset($_GET['action']) && $_GET['action']=="add"){
$id=intval($_GET['id']);
if(in_array($id, $_SESSION['cart'])){
if (($key = array_search($id, $_SESSION['cart'] !== false))){
unset($_SESSION['cart'][$key]);
}
}
else {
array_push($_SESSION['cart'],$id);
}
} ?>
我打印了页面上$_SESSION['cart']
数组和session_id()
,以检查它是否适用于index.php中的以下代码:
<?php print "Test session number: ";
echo session_id();
echo '<br>';
echo serialize($_SESSION['cart']);
?>
所以我的问题是,为什么$id
没有被推到$_SESSION['cart']
编辑:我发现了问题,我忘了添加一个?到数组,所以 $_GET 不知道它是一个参数
您的脚本正在工作。我将您的代码复制到服务器上的 PHP 文件中,它正在执行您的期望。我可以将ID添加到我的"购物车"。您的会话是否正常工作?您的服务器上有一些错误的配置?
var_dump $_SESSION['购物车']前后array_push($_SESSION['cart'],$id);然后检查值。