我正在尝试检索从另一个页面设置的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数据,以显示在显示页面上
答案 0 :(得分:1)
尝试先放置标题,然后设置您的Cookie
赞:
header("location:show.php");
setcookie('shopping_cart', $item_data, time() + (86400 * 30),'/');