【发布时间】:2016-08-22 12:58:13
【问题描述】:
我有一个包含产品的会话。新产品通过 a 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>
因此,当产品被添加到会话中并且用户被重定向到报价页面时,我必须刷新页面才能在购物篮中看到任何产品。虽然我添加的产品在我的报价页面的产品列表中可见。
【问题讨论】:
-
你开始会话了吗?
-
@user1844933 是的,
session_start()在我的连接文件的顶部,在我的 header.php 的顶部 -
在您将产品添加到会话后,您可能正在生成购物篮 html 内容?