【问题标题】:How can I delete a specific cookie prefix with PHP or JavaScript? [duplicate]如何使用 PHP 或 JavaScript 删除特定的 cookie 前缀? [复制]
【发布时间】:2013-07-10 20:34:03
【问题描述】:

我正在使用Codeigniter / GroceryCrud,并且在选择排序列时,它会记住此订单,这使我成为重新划出另一个方向的唯一选择(至少在到期日期内)。我想创建一个仅删除与排序相关的 cookie 的按钮。到目前为止,cookie 的一个例子是......

hidden_​​sorting_4884b0e57a895f932a0a6f5657128eda

...所有用于排序的 cookie 都以 hidden_sorting_ 开头,因此有一个清晰的排序按钮是有意义的。关于这是否可能的任何想法?对内置功能的彻底研究是空的。

我可以像这样用 jQuery 删除全名...

$.cookie("hidden_sorting_4884b0e57a895f932a0a6f5657128eda", null);

但前缀选择有问题。在 jQuery 中,您可以执行以下操作...

$('input[products*="hidden_sorting_"]').val

如果我正在寻找输入,但我需要在 cookie 中获取它。

【问题讨论】:

    标签: php jquery codeigniter cookies grocery-crud


    【解决方案1】:

    试试这个:

    <?php
    session_start(); ob_start();
    function destroyCookies($prefix){
      if(isset($_COOKIE)){
        foreach($_COOKIE as $i => $v){
          if(preg_match("/^$v/", $prefix)){
            setcookie($i, '', time()-3600); unset($_COOKIE[$i]);
          }
        }
      }
    }
    destroyCookies('hidden_sorting_');
    ob_end_flush();
    ?>
    

    您必须在 PHP 中使用ob_start(),以确保您可以随时设置 cookie。

    【讨论】:

    • 我在玩弄使用,没有去。关于访问这种类型的 cookie 的值的任何想法?很简单,products_model。每列都有自己的名称。
    • 尝试显示您的 cookie,例如:implode('; ', $_COOKIE); 以查看您是否真的拥有 cookie。
    • 我确实得到了一个列表,例如:1; 100; asc; products_upc; ; products_model; 1; 50; asc; price_markup_9; ; ;...
    • 你看到你要找的cookie了吗?
    • 哦,那是products cookie。我以为那些是你的饼干的名字。我相信我已经解决了这个问题。再试一次。
    猜你喜欢
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 2013-07-20
    • 1970-01-01
    • 2016-03-09
    • 2019-09-16
    • 2021-07-18
    相关资源
    最近更新 更多