【问题标题】:How to delete cookie on codeigniter如何在codeigniter上删除cookie
【发布时间】:2013-09-05 02:20:21
【问题描述】:

我不知道如何删除 cookie。我想要的是当我提交表格时。 cookie 也被删除。我尝试 delete_cookie("name") 但不工作。我想是因为我由javascript 创建的cookie。请检查我的代码以解决此问题。

这是我的示例文本字段:

<input name="cargo_no" type="text"  class="validate[required]"  id="cargonumber" onchange="setCookie('cargonumberC', this.value, 365);"/>

这是 javascript

function setCookie(cookieName, cookieValue, nDays) {
    var today = new Date();
    var expire = new Date();

    if (!nDays) 
        nDays=1;

    expire.setTime(today.getTime() + 3600000*24*nDays);
    document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString();
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
  }
  return null;
  }

document.addEventListener('DOMContentLoaded', function() {
  var themeSelect = document.getElementById('cargonumber');
  var selectedTheme = readCookie('cargonumberC');

  if (selectedTheme) {
    themeSelect.value = selectedTheme;
  }
});

【问题讨论】:

  • 您无法删除 cookie。您必须将到期时间设置为过去的日期(即使用与域、路径、名称...完全相同的参数调用 setCookie 函数,并使用“1970-01-01”作为日期)以及当页面刷新(重新加载或点击链接)浏览器会删除cookie
  • 使 cookie 过期,或将其设置为无意义的值。

标签: php codeigniter cookies session-cookies


【解决方案1】:

您无法删除 cookie。浏览器(或用户)有权删除 cookie。但是,您可以通过将 cookie 的过期时间设置为过去的日期来使浏览器自动删除 cookie。这是一个 JavaScript 示例。

function deleteCookie(cookieName, cookieValue) {

document.cookie = cookieName+"="+escape(cookieValue) + ";expires=Thu, 01 Jan 1970 00:00:01 GMT;";

}

【讨论】:

    【解决方案2】:

    您可以从 CodeIgniter 中删除 cookie。像这样使用 cookie 助手

    $this->load->helper('cookie');
    delete_cookie("name");
    

    【讨论】:

      【解决方案3】:

      使用 Codeigniter,将其放入控制器的保存方法中:

      试试:

      delete_cookie('name', $domain, $path); 
      

      official documentation的详细信息

      【讨论】:

      • 这就是我想要的 :) 太好了!
      【解决方案4】:

      要删除 cookie,请使用:

      helper('cookie');
      delete_cookie('remember_me');
      

      【讨论】:

        猜你喜欢
        • 2020-06-29
        • 2012-07-06
        • 1970-01-01
        • 1970-01-01
        • 2013-07-22
        • 2013-04-04
        • 2011-01-09
        • 2015-02-24
        相关资源
        最近更新 更多