неопределенный индекс $ _COOKIE - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть корзина, которую я храню в печенье.Файл cookie 'shopping_cart' устанавливается после добавления товара в корзину.

function shopping_cart_add(){

      if(isset($_COOKIE['shopping_cart'])){
          $cookie_data = $_COOKIE['shopping_cart'];
          $cart_data = json_decode($cookie_data, true);
      }else{
          $cart_data = array();
      }
         $data = array(
        "cart_id" => 1,
        "product_id" => $this->input->post('product_id'),
        "product_name" => $this->input->post('product_name'),
        "product_price" => $this->input->post('product_price'),
        "quantity" => $this->input->post('quantity'),
        "options" => $this->input->post('options'),
        "description" => $this->input->post('description'),
        "image" => $this->input->post('image')
        );
         $cart_data[] = $data;

      $item_data = json_encode($cart_data);
      setcookie('shopping_cart',$item_data,time() + (86400 * 30));
      $_COOKIE['shopping_cart'] = $item_data;
    }

У меня возникла проблема, когда пользователь хочет удалить товар из корзины.Я использую платформу codeigniter, но не встроенные куки.

Ниже приведен код для удаления элемента:

<td><a href="<?php echo base_url('designs/delete/');?><?=$values['product_id'];?>" type="button" class="btn btn-default btn-sm">Delete</a></td>

Ниже приведен код в моем контроллере для удаленияitem:

function delete($delete_id){
        $cookie_data = $_COOKIE['shopping_cart'];
        $cart_data = json_decode($cookie_data, true);
        foreach ($cart_data as $key => $value) {
            if ($cart_data[$key]['product_id'] == $delete_id) {
                unset($cart_data[$key]);
                $item_data = json_encode($cart_data);
                setcookie('shopping_cart',$item_data,time() + (86400 * 30));
                header("location:/category/cart_summary.php?remove=1");
            }
        }
    }

Однако, когда я нажимаю кнопку удаления, я получаю сообщение об ошибке.

Undefined variable $_COOKIE['shopping_cart']

Тем не менее, когда я проверяю свой браузер, он показывает, что cookie существует.В чем может быть проблема??Я уже проверил подобные вопросы в стеке, относящиеся к этой проблеме, но ни один не помог.Это включает в себя: неопределенный индекс для cookie в некоторых браузерах PHP неопределенный индекс при проверке значения cookie и наличия cookie

1 Ответ

0 голосов
/ 29 декабря 2018

Это, вероятно, происходит потому, что вы не указали явно, по какому пути будут сохранены файлы cookie shopping_cart.Попробуйте добавить 4-й параметр (путь) для каждого setcookie:

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