我有一个包含产品的会话。新产品被添加到会话(这是一个数组)作为帖子通过像这样的href:
<a class="offertelink" href="offerte.php?product='.$productcr[0]['id'].'">Request a quote</a>
在我的页面顶部,我得到了一个计算数组的篮子,并显示会话中有多少产品。但是当我添加产品时,顶部的篮子显示我的空信息“你没有添加产品”,只有刷新后才有1个产品。那是为什么?
我的代码:
(我上面发布的链接在产品列表中)
整个页面位于ob_start();
和ob_flush();
之间,因此我可以在标题发送后使用标题位置重定向(可能与标题有关吗?)。
quote.php:
ob_start();
include 'includes/header.php';
if(!isset($_SESSION['product'])){
$_SESSION['product'] = array();
}
// Check if $_GET['product'] is is set
if(isset($_GET['product']) && !in_array($_GET['product'], $_SESSION['product'])){
$_SESSION['product'][] = $_GET['product'];
}
此页面上包含标题(包含在每个页面上),其中包含以下代码:
<li class="dropdown"><a href="offerte.php"><i class="fa fa-file-text-o"></i> Quote</a>
<ul class="dropdown-menu">
<li>
<div class="offertemand">
<?
if(count($_SESSION['product']) == 0){
echo '<span style="padding:8px;">No products added</span>';
}else{
$aantal = count($_SESSION['product']);
echo '<a class="offerteitem" href="offerte.php"><span class="aantal">'.$aantal.'</span></a>';
echo '<a style="font-size:13px;" href="offerte.php">Go to quote page</a>';
}
?>
</div>
</li>
</ul>
</li>
因此,当产品被添加到会话中并且用户被重定向到引用页面时,我必须刷新页面以查看在篮子内看到的任何产品。虽然我添加的产品在我的报价页面的产品列表中可见。
答案 0 :(得分:0)
是header.php
中包含的第3个代码(购物篮)?
如果是这样,您必须在product
(或任何其他需要$_SESSION
的代码)之前将header.php
添加到$_SESSION['product']
。
if(!isset($_SESSION['product'])){
$_SESSION['product'] = array();
}
// Check if $_GET['product'] is is set
if(isset($_GET['product']) && !in_array($_GET['product'], $_SESSION['product'])){
$_SESSION['product'][] = $_GET['product'];
}
include 'includes/header.php';