无法将Cookie数据加载到另一个页面

时间:2019-03-26 12:33:43

标签: php cookies

我正在尝试检索从另一个页面设置的cookie数据,但是我似乎无法查看该数据,但是如果我在同一页面中获取它,它将起作用

我尝试了一些方法,但是即使从浏览器刷新cookie后,它仍然无法工作

这是 add.php 页面上的代码

<form method="post">
    <input type="text" name="quantity" value="1" class="form-control" />
    <input type="hidden" name="hidden_name" value="<?php echo $row["name"];?>" />
    <input type="hidden" name="hidden_price" value="<?php echo $row["price"]; ?>" />
  <input type="hidden" name="hidden_id" value="<?php echo $row["id"]; ?>"/>
  <input type="submit" name="add_to_cart" style="margin-top:5px;" class="btn btn-success" value="Add to Cart" />
</form> 

if(isset($_POST["add_to_cart"])) {
    if(isset($_COOKIE["shopping_cart"])) {
        $cookie_data = stripslashes($_COOKIE['shopping_cart']);

        $cart_data = json_decode($cookie_data, true);
    } else {
        $cart_data = array();
    }

    $item_id_list = array_column($cart_data, 'item_id');

    if(in_array($_POST["hidden_id"], $item_id_list)) {
        foreach($cart_data as $keys => $values) {
            if($cart_data[$keys]["item_id"] == $_POST["hidden_id"]) {
                $cart_data[$keys]["item_quantity"] = $cart_data[$keys]["item_quantity"] + $_POST["quantity"];
            }
        }
    } else {
        $item_array = array(
                  'item_id'   => $_POST["hidden_id"],
                  'item_name'   => $_POST["hidden_name"],
                  'item_price'  => $_POST["hidden_price"],
                   'item_quantity'  => $_POST["quantity"]
                  );
        $cart_data[] = $item_array;
    }


    $item_data = json_encode($cart_data);
    setcookie('shopping_cart', $item_data, time() + (86400 * 30),'/');
    header("location:show.php");
}

这是用于从 add.php 检索Cookie数据的代码,该代码是另一个名为 show.php

的页面
<?php
if(isset($_COOKIE["shopping_cart"])) {
    $total = 0;
    $cookie_data = stripslashes($_COOKIE['shopping_cart']);
    $cart_data = json_decode($cookie_data, true);

    foreach($cart_data as $keys => $values){
?>  

        <p> <?php echo   $values["item_id"];?></p> 
        <p> <?php echo   $values["item_quantity"];?></p> 
        <p> <?php echo   $values["item_name"];?></p> 
        <p> <?php echo   $values["item_body"]; ?></p> 

<?php
    }
}
?>

我要做的就是获取从添加页面设置的cookie数据,以显示在显示页面上

1 个答案:

答案 0 :(得分:1)

尝试先放置标题,然后设置您的Cookie

赞:

  header("location:show.php");  
  setcookie('shopping_cart', $item_data, time() + (86400 * 30),'/');