Не могу загрузить данные cookie на другую страницу - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь получить данные 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");
}

Это код для получения данных cookie из add.php , это еще одна страница с именем 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 Ответ

1 голос
/ 26 марта 2019

попробуйте сначала поставить заголовок, а затем установить cookie

Примерно так:

  header("location:show.php");  
  setcookie('shopping_cart', $item_data, time() + (86400 * 30),'/');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...