发布数据后值未更新

时间:2016-08-22 12:58:13

标签: php session

我有一个包含产品的会话。新产品被添加到会话(这是一个数组)作为帖子通过像这样的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>

因此,当产品被添加到会话中并且用户被重定向到引用页面时,我必须刷新页面以查看在篮子内看到的任何产品。虽然我添加的产品在我的报价页面的产品列表中可见。

1 个答案:

答案 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';